JavaScript - 存储在 localStorage 中的日期不会与函数合作

JavaScript - date stored in localStorage won't cooperate with functions

我在变量 deadline (Tue Jul 05 2016 18:15:00 GMT+0100 (BST)) 下的 localStorage 中存储了一个日期,我想找出这个日期与 new Date() 之间的区别,但是我尝试执行任何函数out 与本地存储的日期似乎不起作用。

例如,如果我尝试执行:console.log(deadline.getTime()) 我得到错误:deadline.getTime is not a function 但是当我在 new Date() 上执行相同的功能时,尽管有语法但它工作正常日期完全相同。任何人都可以阐明一下吗?谢谢。

All values in localStorage are always strings。当您在 localStorage 中保存 Date 对象时,它会自动转换为 string

因此,当您返回截止日期时,它不是 Date,而是字符串表示形式。如果要调用 Date 方法,则需要将字符串表示形式转换为 Date。有图书馆 (moment.js) 可以帮助你。

还有更简单的方法来恢复约会。只是不要将其保存为默认字符串表示形式。将其保存为时间戳。然后,当您需要检索日期时,从 localStorage.

中的时间戳创建新的 Date
//save in localStorage
localStorage.setItem( 'deadline', deadline_date.getTime() );

//load from localStorage
var deadline = new Date( localStorage.getItem( 'deadline' ) );