Javascript 过期的本地存储

Javascript 过期的本地存储,javascript,cookies,local-storage,session-storage,Javascript,Cookies,Local Storage,Session Storage,如何设置特定本地存储变量的过期时间 例如: 如果我有一个页面免责声明,一旦用户单击“接受”,我就会在本地存储器中存储某个变量。但是12小时后,我希望它被删除,并要求用户再次接受 我不想将变量存储在会话存储中,因为每次用户打开新选项卡时,免责声明都会提示 Cookies将是另一种解决方案,但如果可能的话,我宁愿不使用它 谢谢 没有内置的方法使存储中的值过期。一种解决方案是存储时间戳,然后在每次访问中将存储的时间(如果有)与本地时间进行比较,以确定该值是否已过期。例如: const expirati

如何设置特定本地存储变量的过期时间

例如: 如果我有一个页面免责声明,一旦用户单击“接受”,我就会在本地存储器中存储某个变量。但是12小时后,我希望它被删除,并要求用户再次接受

我不想将变量存储在会话存储中,因为每次用户打开新选项卡时,免责声明都会提示

Cookies将是另一种解决方案,但如果可能的话,我宁愿不使用它


谢谢

没有内置的方法使存储中的值过期。一种解决方案是存储时间戳,然后在每次访问中将存储的时间(如果有)与本地时间进行比较,以确定该值是否已过期。例如:

const expirationDuration = 1000 * 60 * 60 * 12; // 12 hours

const prevAccepted = localStorage.getItem("accepted");
const currentTime = new Date().getTime();

const notAccepted = prevAccepted == undefined;
const prevAcceptedExpired = prevAccepted != undefined && currentTime - prevAccepted > expirationDuration;
if (notAccepted || prevAcceptedExpired) {
  alert("Disclaimer: ...");
  localStorage.setItem("accepted", currentTime);
}

我强烈建议使用。只需将此2.5kb JS包含到您的应用程序或每个CDN中即可。它的高度可配置性和使用非常简单。它支持字符串或对象

If (lscache.get('myVar') === null) {
  alert('time exceeded')
  //set variable which will expire in 3 days
  lscache.set('myVar', true, (60*24*3))
}

本地存储中没有使值过期的内置方法。解决方案是存储日期值,并在下次就诊时检查。您能给我更多关于如何存储日期值并在下次就诊时检查的信息吗?(如果可能,举个例子)谢谢@亚伦