2017-03-06 77 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,)