2010-05-02 95 views
18

可能重複:
Compare 2 dates with JavaScriptJavaScript的日期比較

我沒有做太多的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 2010-05-02 05:37:26

回答

38

由於date1date2只是對不同對象的引用,而您實際上正在比較這些引用,所以您的比較返回false。

要做到的日期值的一個適當的比較,可以按如下方式使用getTime()方法:

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

好的謝謝。所以'==='也比較類型。做'<=' and '> ='也比較類型? – user290870 2010-05-02 05:44:18

+1

@ ash34:是的,一般建議使用'==='而不是'=='。您可能還想查看此參考資料:https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Comparison_Operators。首先注意它所說的部分:「如果兩個對象引用相同的對象,則兩個對象嚴格相等。」...還要檢查不同比較運算符的說明。 – 2010-05-02 05:47:49