javascript valueOf()返回相同日期的不同整数值
问题描述:
我正在学习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日,但都返回不同的值,我的比较不能按预期方式工作。
我在这里做错了什么?
答
valueOf返回毫秒,因此您应该在setHours中设置毫秒。像那样.setHours(0,0,0,)
当日期测量为毫秒时,它们可能有1/1000的机会匹配。 ['.setHours()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setHours)有第四个参数可用。 –
你可以做'date.toString'并分享它的输出吗? – Rajesh
您必须显示重新创建错误或查询所需的相关代码。 – Smit