1

为了比较 2 日期,我正在进行从字符串到 javascript Date 对象的转换。

这是我拥有的代码示例:

 var date1 = new Date(dateArrray1[2], dateArrray1[1], dateArrray1[0], 0, 0, 0, 0);
 var date2 = new Date(dateArrray2[2], dateArrray2[1], dateArrray2[0], 0, 0, 0, 0);

我的问题是,当我对这两个日期对象进行验证时,我在某个日期的 getTime 函数上得到了相同的结果。

var date1 = new Date(2012, 01, 30, 12, 0, 0, 0).getTime()
var date2 = new Date(2012, 02, 01, 12, 0, 0, 0).getTime()

通常date1dans的值date2应该不同。但是惊喜!这两个对象的值是相同的(实际上是1330621200000)。

有人和我有同样的问题吗?

4

2 回答 2

3

月份字段的范围是 0 - 11,而不是 1 - 12

所以在这种情况下,您要求的是 2 月 30 日和 3 月 1 日。

今年 2 月有 29 天,所以 2 月 30 日(在数学上)与 3 月 1 日相同。

于 2012-01-27T18:28:16.823 回答
3

Javascript 日期使用从 0 开始的月份。
如果你传递了一个无效的日期,例如 February 30 th,它会找出那个日期实际上是什么。
因此,闰年的2 月 30日与 3 月 1相同。

于 2012-01-27T18:28:17.390 回答