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


当前回答

当链接发布时,Chrome cookie最多可以存活400天。Chrome在这个回应的时候是一个大问题,所以我会让一个cookie的过期是在400天或更少。

如果你不想点击链接,它会总结说:

当cookie设置了显式的Expires/Max-Age属性时,该值将被限制在未来不超过400天。在此之前,没有任何限制,而且饼干在未来可能会过期数千年之久。

其他回答

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

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

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

你不能这样做,但是如果你将过期时间设置为现在+ 100年呢?

你不应该这样做,这是不可能的,如果你愿意,你可以设置一个更大的值,比如10年以后。

顺便说一句,我从来没有见过有这样要求的饼干:)

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

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

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

虽然这是不可能的,但你可以做一些类似谷歌所做的事情,将你的cookie设置为2038年1月17日或同样遥远的时间。

实际上,你最好将你的cookie设置为10年或60*60*24*365*10年,这应该比你的cookie所使用的大多数机器的寿命都长。