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

Saving and retrieving Date from local storage

这似乎是一个愚蠢的问题,但我在理解 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);

当我 运行 这段代码时,它一直告诉我 Undefined is not a function 第二个代码块的第二条规则(可能是 .getDate() 函数)。

有人知道我可能做错了什么吗?我认为这个 javascript 的简单片段在不更改代码的情况下 运行 可以在打字稿中使用...

您应该将时间戳存储在 localStorage 中,然后检索它,使用该时间戳创建一个新日期,添加 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);

如果您执行以下操作

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

你会发现date1是一个字符串。这是因为 localStorage 将其所有数据存储为字符串。

您应该通过使用返回的字符串创建新日期来解析字符串。

放入 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);