2014-02-20 39 views
1

我有兩個javascript日期,dt和Frefdate。在螢火蟲中,這兩個值都是日期{2005年4月8日00:00:00 GMT + 1000(澳大利亞東部夏令時)}。爲什麼javascript date1 == date2不工作?

但是dt == Frefdate是錯誤的。 我必須使用dt.valueOf()== Frefdate.valueOf()來比較這兩個日期。爲什麼?

在w3schools網站上,日期比較可以是date1> date2(見http://www.w3schools.com/js/js_obj_date.asp)。

謝謝。

+2

兩個日期是兩個不同的對象。 – elclanrs

+0

由於同樣的原因'{} == {}'是'false',它是'false':它們是不同的對象。 '.valueOf'返回一個數字,如果它們具有相同的值,則兩個數字相等。 –

回答

1

當你比較兩個不同的日期對象時,你並沒有比較它們的值,而是比較它們實際上是同一個對象。

即使兩個日期對象設置爲相同的日期和時間,它們也是兩個單獨的實例。把它看作是比較對內存結構的引用。每個存儲器的位置都會有所不同。

+0

爲什麼downvote? – Brad

0

這兩個日期是兩個不同的對象,所以它們不是「對象相等」。 JavaScript允許您使用==比較字符串和數字,但所有其他類型都會作爲對象進行比較。

相關問題