JavaScript日期比较奇怪

时间:2012-11-02 20:48:58

标签: javascript

我对JavaScript日期比较有疑问。我在10月31日创建了一个Date对象,在11月1日创建了另一个,但每个的getTime()返回相同的数字,而大于/小于运算符也认为日期相等。这是我的代码:

d1 = new Date(2012, 10, 31, 0, 0, 0, 0);
d2 = new Date(2012, 11, 1, 0, 0, 0, 0);
document.write(d1.getTime() + "<br />");
document.write(d2.getTime() + "<br />");
document.write((d1 < d2) + "<br />");
document.write((d1 > d2) + "<br />");

这是输出:

1354320000000
1354320000000
false
false

相同的代码在其他月结束时工作正常,似乎只是这两个日期导致了问题。

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:6)

11月(10)没有31天,所以它将包裹到12月(11)1st。

new Date(2012, 10, 31, 0, 0, 0, 0)
//Sat Dec 01 2012 00:00:00 GMT+0200 (FLE Standard Time)

//more wrapping:
new Date(2012, 10, 35, 0, 0, 0, 0)
//Wed Dec 05 2012 00:00:00 GMT+0200 (FLE Standard Time)