Это i18n на основе дата выдачи разборе. node-dateformat
(и, в конечном счете, синтаксический анализ javascript, на котором он опирается, за кадром) не может обрабатывать французские месяцы. Для этого попробуйте:
dateFormat('4 july 1991', 'yyyy-mm-dd')
Это будет работать правильно. Если вы хотите разбирать французские даты, я бы рекомендовал использовать удивительную библиотеку времени/времени moment. Moment имеет полную поддержку i18n. Вам просто нужно добавить custom locale bundle для вашего языка, тогда вы все настроены. Вот краткий пример, показывающий, как это может работать с французским набором локалей:
import moment from 'moment';
// A French locale bundle; call this once in your code somewhere
moment.locale('fr', {
months : "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),
monthsShort : "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),
weekdays : "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),
weekdaysShort : "dim._lun._mar._mer._jeu._ven._sam.".split("_"),
weekdaysMin : "Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),
longDateFormat : {
LT : "HH:mm",
LTS : "HH:mm:ss",
L : "DD/MM/YYYY",
LL : "D MMMM YYYY",
LLL : "D MMMM YYYY LT",
LLLL : "dddd D MMMM YYYY LT"
},
calendar : {
sameDay: "[Aujourd'hui à] LT",
nextDay: '[Demain à] LT',
nextWeek: 'dddd [à] LT',
lastDay: '[Hier à] LT',
lastWeek: 'dddd [dernier à] LT',
sameElse: 'L'
},
relativeTime : {
future : "dans %s",
past : "il y a %s",
s : "quelques secondes",
m : "une minute",
mm : "%d minutes",
h : "une heure",
hh : "%d heures",
d : "un jour",
dd : "%d jours",
M : "un mois",
MM : "%d mois",
y : "une année",
yy : "%d années"
},
ordinalParse : /\d{1,2}(er|ème)/,
ordinal : function (number) {
return number + (number === 1 ? 'er' : 'ème');
},
meridiemParse: /PD|MD/,
isPM: function (input) {
return input.charAt(0) === 'M';
},
meridiem : function (hours, minutes, isLower) {
return hours < 12 ? 'PD' : 'MD';
},
week : {
dow : 1,
doy : 4
}
});
// Create a new moment instance, parsing your French date
const date = moment('4 juillet 1991', 'D MMMM YYYY')
// Will output "1991-07-04"
console.log(date.format('YYYY-MM-DD'));
Что значит 'juillet'? – abdulbarik
извините, это июль на французском языке. Возможно, это потому, что на французском языке у меня эта ошибка? –
Итак, вы хотите конвертировать в 'французский'? – abdulbarik