javascript - 保存和加载日期本地存储

标签 javascript local-storage

我必须将日期保存到 localStorage,当页面刷新时我想计算从那时起经过了多少时间。

现在,问题来了:localStorage 将日期保存为字符串,因此在将日期保存在 localStorage 中后,尝试计算这两个日期之间的差异会返回 NaN。

在你的 javascript 控制台试试这个:

var a = new Date();
var b = new Date();
console.log(b - a); //this works
localStorage.a = a;
localStorage.b = b;
console.log(localStorage.b - localStorage.a); //this doesn't work

我还尝试了 JSON.stringifyJSON.parse 试图保持日期对象完整,但这也不起作用。

我的猜测是我必须解析 localStorage 中的日期。如果没有更好的方法,我该怎么做?

最佳答案

演示: http://jsfiddle.net/AuhtS/

代码:

var a = new Date();
var b = new Date();
console.log(b - a); //this works
localStorage.a = a;
localStorage.b = b;
a = Date.parse(localStorage.a); // parse to date object
b = Date.parse(localStorage.b);
console.log(b - a); // now, this will work

原因

所有内容都作为字符串存储在localStorage中。

因此,当您执行 localStorage.b - localStorage.a 时,您正在尝试从一个字符串中减去另一个字符串。这就是它不起作用的原因。

关于javascript - 保存和加载日期本地存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12661293/

相关文章:

javascript - 将元素插入数组仅在循环内有效

javascript - 使用 nightwatch-html-reporter,有没有办法将时间戳附加到报告文件名?

Android 在应用程序启动时检查存储空间是否不足

javascript - 如何在本地存储AngularJS中存储按钮值?

javascript - HTML5 本地存储中的项目何时过期?

javascript - 从表内的文本框读取数据

javascript - 如何阻止 FCKeditor 将 html 实体恢复为它们的 unicode 字符

javascript - 从 therubyracer(或 execjs)测试 ajax?

javascript - 如何从 javascript 访问服务器端 php?

javascript - 为什么 window.navigator.storage.estimate() 有时在 Chrome 上未定义