Неверная дата при разборе с локалью - PullRequest
0 голосов
/ 28 декабря 2018

Мне нужно проанализировать дату в локали "it" с помощью momentjs, и я делаю это

import moment from 'moment';
import 'moment/locale/it';

moment.locale("it");
let d = "20/12/2018"; // 20 dec 2018
let mm = moment(d);
console.log(mm.format("DD MM YYYY"));

То, что я получаю, это "недопустимая дата", и я не понимаю, почему.Можете ли вы помочь мне?

С использованием языка "en" (с датой, написанной 20.12.2008), все в порядке

1 Ответ

0 голосов
/ 28 декабря 2018

Следующий фрагмент кода выполнит то, что вы хотите.Он берет формат даты момента для данного локального и передает его конструктору при создании момента.

С учетом вышесказанного, комментарии выше поднимают много хороших моментов, и это не надежный способ обработки дат.

Например, если кто-то в Италии введет строку даты в формате en MM/DD/YYYY, это приведет к разрыву

let localeFormat = moment.localeData('it').longDateFormat('L');
console.log(localeFormat) // DD/MM/YYYY

let d = "20/12/2018"; // 20 dec 2018
let mm = moment(d, localeFormat);
console.log(mm.format("DD MM YYYY"));
...