3 回答

TA貢獻(xiàn)1784條經(jīng)驗 獲得超9個贊
這是因為在第二種情況下,將比較實際的日期對象,并且兩個對象永遠(yuǎn)不會相等。強(qiáng)迫他們編號:
alert( +startDate2 == +startDate3 ); // true
如果要更明確地轉(zhuǎn)換為數(shù)字,請使用以下任一方法:
alert( startDate2.getTime() == startDate3.getTime() ); // true
要么
alert( Number(startDate2) == Number(startDate3) ); // true
哦,是對規(guī)范的引用:§11.9.3 在比較對象時基本上說的抽象平等比較算法,obj1 == obj2僅當(dāng)它們引用相同的對象時才為true,否則結(jié)果為false。

TA貢獻(xiàn)1802條經(jīng)驗 獲得超10個贊
使用getTime()從紀(jì)元返回的毫秒數(shù)(即數(shù)字)比較日期:
var startDate1 = new Date("02/10/2012");
var startDate2 = new Date("01/10/2012");
var startDate3 = new Date("01/10/2012");
alert(startDate1.getTime() > startDate2.getTime()); // true
alert(startDate2.getTime() == startDate3.getTime()); //true
還可以考慮使用Date構(gòu)造函數(shù)使用顯式的年/月/日數(shù)字,而不是依賴字符串表示形式(請參見:Date.parse())。請記住,JavaScript中的日期始終使用客戶端(瀏覽器)時區(qū)表示。

TA貢獻(xiàn)1869條經(jīng)驗 獲得超4個贊
您不需要使用getTime方法-您可以從另一個日期對象中減去一個日期對象。它將返回毫秒差(負(fù)數(shù),如果第二個是較晚的日期,則為負(fù)數(shù))
var startDate1 = new Date("02/10/2012");
var startDate2 = new Date("01/10/2012");
var diff= (startDate1 -startDate2)
//如果日期具有相同的時間戳,則計算為0
添加回答
舉報