gpt4 book ai didi

javascript - 为什么 moment.js 在使用严格解析时允许日期为一位数年份?

转载 作者:行者123 更新时间:2023-11-29 10:42:34 25 4
gpt4 key购买 nike

我正在使用 moment.js 来解析日期。 http://momentjs.com/docs/#/parsing/string-format/

这是为了验证日期并将其转换为我的数据库所需的格式。在我的测试中,我遇到了这个输入日期“6-4-3”,它对于给定的格式应该是无效的。

moment('6-4-3','YYYY-MM-DD',true).isValid(); //returns true

moment 对象中的结果日期是“Mon Apr 03 0006 ...”。当我调用 isValid 时,它返回 true。我认为它应该认为这个日期无效,因为它在格式字符串的每个部分的输入中的数字太少。

我在我的代码中添加了一个 regex.test 以确保日期具有正确的位数,但我认为当 strict 为 true 时,这应该在 moment.js 中以不同方式处理。

我在这里缺少什么吗?这不就是严格解析的意义所在吗?或者这是预期行为的原因吗?

最佳答案

这是过去版本的 Moment.js 的已知问题:YYYY-MM-DD with 3 digit year returns true for isValid() .

它已于 2013 年 12 月修复,您的代码可以在最新版本的库中正常运行。版本 2.3.1 was released in October 2013并且不包括此修复程序。

关于javascript - 为什么 moment.js 在使用严格解析时允许日期为一位数年份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25892298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com