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

时间:2016-07-05 23:57:55

标签: javascript date storage difference gettime

我在变量deadlineTue Jul 05 2016 18:15:00 GMT+0100 (BST))下的localStorage中存储了一个日期,我想找到这个日期和new Date()之间的差异但是我试图执行的任何函数本地存储的日期似乎不起作用。

例如,如果我尝试执行:console.log(deadline.getTime())我收到错误:deadline.getTime is not a function但是当我在new Date()上执行相同的功能时,尽管语法是日期完全一样。任何人都能解释一下吗?感谢。

1 个答案:

答案 0 :(得分:2)

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

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

还有更简单的方式让你的约会回来。只是不要将其保存为默认字符串表示形式。将其保存为时间戳。然后,当您需要审核日期时,请从Date中的时间戳创建新的localStorage

//save in localStorage
localStorage.setItem( 'deadline', deadline_date.getTime() );

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