为什么日期格式没有给出正确的值?

why the date format is not giving correct value?

我正在检查日期格式是否有效。为什么这种格式有效?

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

为什么它给我的是真。它应该是假的。为什么? 这是我的代码

http://plnkr.co/edit/ZH2kjC9QWwbdLwmvH2Tp?p=preview 我哪里做错了。formate 应该是 'DD-MMM-YYYY'

你可以试试这个

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

注意:strict 解析的附加真标志。这告诉时刻不要使用通配符并使用完全匹配。

Moment's parser is very forgiving, and this can lead to undesired/unexpected behavior.

For example, the following behavior can be observed:

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

As of version 2.3.0, you may specify a boolean for the last argument to make Moment use strict parsing. Strict parsing requires that the format and input match exactly, including delimeters.

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/