我对这两种情况都感到错误
localStorage.getitem("dl-visited-date") // "Mon Oct 07 2013 13:58:18 GMT-0400 (EDT)";
currentDate // Tue Oct 08 2013 14:18:26 GMT-0400 (EDT)
currentDate > localStorage.getItem("dl-visited-date") //false
currentDate < localStorage.getItem("dl-visited-date") //false
最佳答案
localStorage.getitem
确实返回一个字符串(当您将 Date 对象存储在本地存储中时,它已隐式字符串化)。如果将其与 Date 对象进行比较,两者都会被转换为数字,但是当这适用于 Date 对象时,字符串将变为 NaN
。这将 false
与任何东西进行比较。
您需要先解析它(使用 Date
constructor ):
var date = new Date(localStorage.getitem("dl-visited-date")),
currentDate = new Date();
如果您想测试它们是否相等,则需要使用普通数字。使用Date.parse
那么:
var dateStamp = Date.parse(localStorage.getitem("dl-visited-date")),
currentDateStamp = Date.now();
关于javascript - 需要清楚 javascript 日期逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19231983/