如何设置一个cookie在Javascript中1小时后到期?

Dav*_*ave 44 javascript

如何将此cookie设置为在当前时间后一小时内到期:

document.cookie = 'username=' + value; + 'expires=' + WHAT GOES HERE?; + 'path = /';
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 83

代码:

var now = new Date();
var time = now.getTime();
time += 3600 * 1000;
now.setTime(time);
document.cookie = 
'username=' + value + 
'; expires=' + now.toUTCString() + 
'; path=/';
Run Code Online (Sandbox Code Playgroud)

  • 60*60(每分60秒60分钟),每秒1000毫秒 (2认同)

Sal*_*ali 15

你可以用更紧凑的方式写这个:

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

而对于像我这样,谁浪费了一个小时试图弄清楚为什么用过期的cookie不会在Chrome中建立(但没有期满,可设置),这里是答案:

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


Spe*_*ill 9

您可以使用max-age来代替 expires 。Max-Age 在过期后继续存在并接受过期持续时间(以秒为单位)。

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

document.cookie = 'username=' + value + '; max-age=3600; path=/';
Run Code Online (Sandbox Code Playgroud)