存储为字符串后,JavaScript日期不匹配

时间:2015-06-13 04:26:08

标签: javascript string date gettime

我无法弄清楚为什么ls_a === a在下面的代码中返回false。似乎当我转换为日期字符串并重新约会时,某些东西正在丢失,但是什么?

JSFiddle:http://jsfiddle.net/s6accbax/

var a = new Date();
localStorage.a = a.getTime();
ls_a = new Date(parseInt(localStorage.a));

console.log(a);    // Fri Jun 12 2015 22:12:34 GMT-0600 (MDT)
console.log(ls_a); // Fri Jun 12 2015 22:12:34 GMT-0600 (MDT)
console.log(ls_a === a); // returns false!?!?!
console.log(ls_a.getTime() === a.getTime()); // returns true as expected

2 个答案:

答案 0 :(得分:4)

重复:JavaScript Date Object Comparison

这是因为ls_aa不同,当您调用.getTime()时,您获得的字符串未作为对象进行比较

答案 1 :(得分:1)

使用===时没有类型转换,因此ls_a不等于a。

  

严格相等运算符===只考虑相等的值   相同的类型。