typescript 从本地存储中保存和检索日期

vhipe2zx  于 2023-03-13  发布在  TypeScript
关注(0)|答案(3)|浏览(131)

这看起来可能是一个愚蠢的问题,但我有一个相当困难的时间,理解Typescript.我有以下代码:

var date = new Date();
window.localStorage.setItem("date", date);

正如你所看到的,我生成了今天的日期并通过本地存储器存储它,现在我想在另一个函数中检索这个值,给它加上7天,再次存储它,并在一个警告框中显示新的值。

var date = window.localStorage.getItem("date");
date.setDate(date.getDate() + 7);
window.localStorage.setItem("date", date);
alert(date);

当我运行这段代码时,它一直告诉我第二个代码块(可能是.getDate()函数)的第二个规则是Undefined is not a function
有人知道我可能做错了什么吗?我原以为这段简单的javascript在typescript中运行得很好,不需要更改代码...

xxslljrj

xxslljrj1#

放入localStorage的所有内容都存储为字符串,您的日期最初是一个对象,您需要在从localStorage获取值后将字符串转换回对象。

var date = window.localStorage.getItem("date");
// Initialize the date object as a date object again here
date = new Date(date);
date.setDate(date.getDate() + 7);
dgsult0t

dgsult0t2#

您应该将时间戳存储在localStorage中,然后检索它,使用该时间戳创建新的Date,添加7天,然后再次存储它:

var date1 = new Date();
window.localStorage.setItem("date", date1.getTime());

var date2 = new Date(Number(window.localStorage.getItem("date")));
date2.setDate(date2.getDate() + 7);
window.localStorage.setItem("date", date2.getTime());
alert(date2);
vs3odd8k

vs3odd8k3#

如果执行以下操作

var date = new Date();
window.localStorage.setItem("date", date);
var date1 = window.localStorage.getItem("date");
console.log(date1)

您会发现date1是一个字符串,这是因为localStorage将其所有数据都存储为字符串。
您应该通过使用返回的字符串创建新的Date来分析字符串。

相关问题