почему формат даты не дает правильное значение?

1

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

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

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

http://plnkr.co/edit/ZH2kjC9QWwbdLwmvH2Tp?p=preview, где я делаю неправильный.formate должен быть "DD-MMM-YYYY"

Теги:
angular
momentjs
angular-moment

1 ответ

2
Лучший ответ

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

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

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

Moment parser очень прощает, и это может привести к нежелательному/неожиданному поведению.

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

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

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

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/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню