为什么日期格式不能提供正确的值?

时间:2018-11-02 06:31:43

标签: javascript angular momentjs angular-moment

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

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

为什么给我以true。应该为false。为什么? 这是我的代码

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

1 个答案:

答案 0 :(得分:2)

您可以尝试

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

注意:用于strict解析的其他true标志。告诉您不要使用通配符并使用完全匹配。

  

Moment的解析器非常宽容,这可能导致   意外/意外的行为。

     

例如,可以观察到以下行为:

 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/