JavaScript日期比较

21

可能是重复问题:
使用 JavaScript 比较两个日期

我不太懂 JavaScript。 我正在尝试比较两个日期。 来自 jconsole:

a = ["01/01/2010","01/02/2010","01/03/2010"]

date1 = new Date('01/02/2010')
Sat Jan 02 2010 00:00:00 GMT-0800 (PST)

date2 = new Date(a[1])
Sat Jan 02 2010 00:00:00 GMT-0800 (PST)

date1 == date2
false

有人能告诉我为什么这个没有匹配成功吗?


7
有趣的是,在这种情况下,>=<= 都返回 true,但 == 却返回 false。这是 JavaScript 的又一奇迹。 - Kobi
1个回答

38

你的比较返回了false,因为date1date2只是对不同对象的引用,而你实际上是在比较这些引用。

要正确比较日期值,可以使用getTime()方法,如下所示:

date1.getTime() === date2.getTime();   // returns true

1
好的,谢谢。所以 '===' 也会比较类型。 '<=' 和 '>=' 也会比较类型吗? - user290870
1
@ash34:通常建议使用===而不是==。您可能还想查看此参考文献:https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Comparison_Operators。首先请注意其中的一部分,它说:“如果两个对象引用同一个对象,则它们严格相等。”... 还要检查不同比较运算符的描述。 - Daniel Vassallo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接