2017-03-06 72 views
0

我正在學習JavaScript。這是我的問題:javascript valueOf()返回相同日期的不同整數值

我比較兩個日期,以查找它們是否相等。爲此,我在兩個日期使用了valueOf(),但是當我檢查返回不同值的相同日期時。

var today=new Date(); 
today.setHours(0,0,0);//first date 
dbDate=new Date(inputArray[i].updatedAt.iso); 
dbDate.setHours(0,0,0);//second date from my db 
alert('compare'); 
      alert(today); 
      alert(today.valueOf()); 
      alert(dbDate); 
      alert(dbDate.valueOf()); 

       alert(today.valueOf()===dbDate.valueOf()) 
       if(today.valueOf()===dbDate.valueOf())//comparing 
       { 
       alert('curr day if'); 
       outArray.push(inputArray[i]); 


       } 

我的系統時間是3月5日(我設置時間配置爲馬來的Stadard日期)。我從數據庫檢索日期也是3月5日,但都返回不同的值,我的比較不能按預期方式工作。

我在這裏做錯了什麼?

+3

當日期測量爲毫秒時,它們可能有1/1000的機會匹配。 ['.setHours()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setHours)有第四個參數可用。 –

+0

你可以做'date.toString'並分享它的輸出嗎? – Rajesh

+0

您必須顯示重新創建錯誤或查詢所需的相關代碼。 – Smit

回答

2

valueOf返回毫秒,因此您應該在setHours中設置毫秒。像那樣.setHours(0,0,0,)