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' ) );
我在变量 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' ) );