【发布时间】:2010-09-25 18:25:17
【问题描述】:
如何设置这个cookie从当前时间开始一小时后过期:
document.cookie = 'username=' + value; + 'expires=' + WHAT GOES HERE?; + 'path = /';
【问题讨论】:
标签: javascript
如何设置这个cookie从当前时间开始一小时后过期:
document.cookie = 'username=' + value; + 'expires=' + WHAT GOES HERE?; + 'path = /';
【问题讨论】:
标签: javascript
代码:
var now = new Date();
var time = now.getTime();
time += 3600 * 1000;
now.setTime(time);
document.cookie =
'username=' + value +
'; expires=' + now.toUTCString() +
'; path=/';
【讨论】:
你可以用更紧凑的方式写这个:
var now = new Date();
now.setTime(now.getTime() + 1 * 3600 * 1000);
document.cookie = "name=value; expires=" + now.toUTCString() + "; path=/";
对于像我这样浪费了一个小时试图弄清楚为什么在 Chrome 中没有设置过期 cookie(但可以设置没有过期)的人来说,这里是答案:
出于某种奇怪的原因,Chrome 团队决定忽略来自本地页面的 cookie。因此,如果您在 localhost 上执行此操作,您将无法在 Chrome 中看到您的 cookie。所以要么上传到服务器上,要么使用其他浏览器。
【讨论】:
您可以使用max-age,而不是使用过期。 Max-Age 超过 expires 并接受以秒为单位的过期持续时间。
对于您的示例,考虑到一小时是 3600 秒,代码将是:
document.cookie = 'username=' + value + '; max-age=3600; path=/';
【讨论】: