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

Issue in validating the date using moment.js by format

本文关键字:问题 js 格式 时刻 验证 日期      更新时间:2023-09-26

有人可以向我解释以下时刻的行为.js代码吗?

在下面的代码中,日期经过验证,并按预期返回 false。

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

但是,如果我按如下所示更改格式,则验证通过并返回 true。

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

它与当前的真实时刻不符。检查您的版本。

试试看: JSFiddle

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

尽管如此,标准解析是"宽松的",因此它可以尝试接受无效日期。例如(见评论)31/02/2015 被解析为 2 年的 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"