我使用moment.js解析日期。http://momentjs.com/docs/#/parsing/string-format/
这是为了验证日期并将其转换为我的数据库所需的格式。在我的测试中,我遇到了这个输入日期'6-4-3‘,它应该在给定的格式下无效。
moment('6-4-3','YYYY-MM-DD',true).isValid(); //returns true当前对象的结果日期是"Mon Apr 03 0006 .“。当我调用isValid时,它返回true。我认为它应该认为这个日期无效,因为它在格式字符串的每个部分的输入中的数字太少。
我在代码中添加了一个regex.test,以确保日期有正确的数字,但我认为在moment.js中,当严格为真时,应该以不同的方式处理。
这里有什么东西我遗漏了吗?这不是严格解析的重点吗?或者有什么原因可以解释为什么这是行为的意图?
发布于 2014-09-17 16:39:09
对于Moment.js:YYYY DD,具有3位数的年份返回isValid()的true的过去版本来说,这是一个已知的问题。
它是在2013年12月修复的,您的代码可以像预期的那样使用最新版本的库。版本2.3.1 于2013年10月获释,不包括此修复程序。
https://stackoverflow.com/questions/25892298
复制相似问题