查看关于设置cookie的php文档,我看到我可以为cookie设置过期日期。您可以将cookie设置为在浏览器会话结束时过期,或者在将来的某个时间过期,但我不知道如何将cookie设置为永不过期。这可能吗?这是如何实现的?


当前回答

你不能说一个永不结束的循环,cookie过期日期为当前日期+ 1所以它永远不会到达它应该过期的日期,因为它总是明天?有点夸张,但只是说说而已。

其他回答

我相信没有一种方法可以让饼干永远存在,但你只需要设置它在遥远的未来过期,比如2100年。

如果你想在客户端机器上永久保存数据——或者至少直到浏览器缓存完全清空,使用Javascript本地存储:

https://developer.mozilla.org/en-US/docs/DOM/Storage#localStorage

不要使用会话存储,因为它会像最大年龄为0的cookie一样被清除。

我的特权阻止我对第一篇文章发表评论,所以它必须在这里。

从当前日期提前20年设置时,应该考虑到2038 unix错误,这是上面建议的正确答案。

你的cookie在2018年1月19日(20年后)可能会遇到2038问题,这取决于你最终运行的浏览器和或版本。

设定遥远未来的绝对时间:

setcookie("CookieName", "CookieValue", 2147483647);

使用绝对时间比按照公认答案中建议的相对于当前计算时间要好。

与32位系统兼容的最大值为:

2147483647 = 2^31 = ~year 2038

你可以设置一个远离日期的日期,cookie是这样创建的:

var Cookie_expiry = new Date();
Cookie_expiry.setDate(Cookie_expiry.getDate()+10e5);   
// expiry date of cookie is set to be practically infinite (~ 4000 years)
setCookie('token', 'token_value', {expires: Cookie_expiry});