为什么momentJS转换" 02-31-2015"进入" 2015年3月3日"

时间:2015-01-16 21:35:24

标签: javascript momentjs

我的用户可以使用日期更改网址。

当我输入url`s date params到2015-02-31并且我创建了一个momentJS对象时,我得到了一个类似于2015年3月3日的日期。

即使我认为2015-02-31及其月份'02'实际上是javascript的第三个月,那么创建后的日期应该是2015年3月31日而不是2015年3月3日

那么为什么错误的约会?

enter image description here

3 个答案:

答案 0 :(得分:2)

二月只有28天。 当您输入2015-02-31时,它是3天(31-28)到下个月,即3月, 这就是为什么日期是2015年3月3日

答案 1 :(得分:2)

这称为JavaScript提供的“宽松”日期解析。你不能轻易地禁用它,但是,有一些方法,例如, http://www.gitshah.com/2010/08/how-to-accept-only-strict-dates-using.html

答案 2 :(得分:0)

我找到了问题的答案:

在momentJS网站上使用其中一个可能的日期字符串仍然会在2015年3月3日创建日期,但在内部由于_i“2015 2 31”,isValid会返回false,这正是我需要的!

enter image description here