почему формат даты не дает правильное значение? - PullRequest
0 голосов
/ 02 ноября 2018

Я проверяю, является ли формат даты действительным или нет. Почему этот формат действителен?

  alert(moment('16-jun-199', 'DD-MMM-YYYY').isValid())

Почему это дает мне правду. Это должно быть ложным. Почему? вот мой код

http://plnkr.co/edit/ZH2kjC9QWwbdLwmvH2Tp?p=preview где я делаю неправильно. формат должен быть «ДД-МММ-ГГГГ»

1 Ответ

0 голосов
/ 02 ноября 2018

Вы можете попробовать это

moment('16-jun-199', 'DD-MMM-YYYY',true).isValid())

Примечание: дополнительный флаг true для анализа strict. который сообщает момент, чтобы не использовать подстановочные знаки и использовать точное совпадение.

Парсер Момента очень прощающий, и это может привести к нежелательное / неожиданное поведение.

Например, можно наблюдать следующее поведение:

 moment('2016 is a date', 'YYYY-MM-DD').isValid() //true, 2016 was
 matched

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

moment('It is 2012-05-25', 'YYYY-MM-DD').isValid();       // true
moment('It is 2012-05-25', 'YYYY-MM-DD', true).isValid(); // false
moment('2012-05-25',       'YYYY-MM-DD', true).isValid(); // true
moment('2012.05.25',       'YYYY-MM-DD', true).isValid(); // false

Источник: https://momentjs.com/docs/

...