如何在 Javascript 中将 cookie 设置为在 1 小时内过期?

IT技术 javascript
2021-02-24 08:43:04

如何将此 cookie 设置为从当前时间起一小时后过期:

document.cookie = 'username=' + value; + 'expires=' + WHAT GOES HERE?; + 'path = /';
3个回答

代码 :

var now = new Date();
var time = now.getTime();
time += 3600 * 1000;
now.setTime(time);
document.cookie = 
'username=' + value + 
'; expires=' + now.toUTCString() + 
'; path=/';
60*60(60 分钟每分钟 60 秒),1000 是每秒的毫秒数
2021-05-05 08:43:04
谢谢 - 我正在使用 .toGTMString - 没有意识到它已被弃用!
2021-05-14 08:43:04
为什么要3600*1000?
2021-05-14 08:43:04

您可以以更紧凑的方式编写此代码:

var now = new Date();
now.setTime(now.getTime() + 1 * 3600 * 1000);
document.cookie = "name=value; expires=" + now.toUTCString() + "; path=/";

对于像我这样浪费一个小时试图弄清楚为什么没有在 Chrome 中设置过期 cookie(但可以设置没有过期)的人来说,这里是答案:

出于某种奇怪的原因,Chrome 团队决定忽略来自本地页面的 cookie因此,如果您在本地主机上执行此操作,您将无法在 Chrome 中看到您的 cookie。因此,要么将其上传到服务器上,要么使用其他浏览器。

您可以使用max-age而不是使用 expires Max-Age 接管过期时间并接受以秒为单位的过期持续时间。

对于您的示例,考虑一个小时是 3600 秒,代码将是:

document.cookie = 'username=' + value + '; max-age=3600; path=/';