Javascript 按格式使用moment.js验证日期时出现问题

Javascript 按格式使用moment.js验证日期时出现问题,javascript,momentjs,Javascript,Momentjs,有人能解释一下下面moment.js代码的行为吗 在下面的代码中,date被验证为fine,并按预期返回false moment("32/02/2015", 'DD MM YYYY') 但是,如果我按如下所示更改格式,则验证通过并返回true moment("32/02/2015", 'DD MMM YYYY') moment("31/02/2015", 'DD MMM YYYY') 不,它不符合当前的现实。检查你的释放 试试看: 然而,标准解析是“宽松的”,因此它可以尝试接受无效的日期。例

有人能解释一下下面moment.js代码的行为吗

在下面的代码中,date被验证为fine,并按预期返回false

moment("32/02/2015", 'DD MM YYYY')
但是,如果我按如下所示更改格式,则验证通过并返回true

moment("32/02/2015", 'DD MMM YYYY')
moment("31/02/2015", 'DD MMM YYYY')

不,它不符合当前的现实。检查你的释放

试试看:

然而,标准解析是“宽松的”,因此它可以尝试接受无效的日期。例如(见注释)2015年2月31日被解析为第二年的1月31日。您可以将第三个参数设置为
true
,强制执行严格的解析

moment("31/02/2015", "DD MMM YYYY") // returns Thu Jan 31 0002 00:00:00 GMT+0100
moment("31/02/2015", "DD MMM YYYY", true) // returns "Invalid date"

是的,现在我同意了。但现在它失败了,因为1025年2月31日不存在,但它解析并生成了一个日期。
moment("31/02/2015", "DD MMM YYYY") // returns Thu Jan 31 0002 00:00:00 GMT+0100
moment("31/02/2015", "DD MMM YYYY", true) // returns "Invalid date"