Javascript Cookie没有到期date

我想build立一个永不过期的cookie。 这甚至可能吗?

document.cookie = "name=value; expires=date; path=path;domain=domain; secure"; 

我不想让date真的很大,我只是想知道是否有一个cookie的expires参数值告诉它永不过期。

谢谢。

不。 无法完成。 这样做的“方式”只是使到期date像2020年一样。

没有你想要的语法。 不设置过期会导致cookie在会话结束时过期。 唯一的select是挑一些任意大的值。 请注意,某些浏览器在2038年之前有date问题(当unix时期超过32位整数时)。

你可以在Mozilla文档中做这个例子:

  document.cookie = "someCookieName=true; expires=Fri, 31 Dec 9999 23:59:59 GMT"; 

PS

当然,如果人类在每年的第一分钟仍然使用你的代码,那么将会有一个问题:)

您可以在一个月的某个有效期限内设置一个cookie,然后每当用户再次访问网站时重新分配cookie

如果您没有设置到期date,则cookie将在用户会话结束时过期。 我build议在unix时代之前使用这个date的时间会延长到32位整数。 要把它放在cookie中,你可以使用document.cookie = "randomCookie=true; expires=Tue, 19 Jan 2038 03:14:07 UTC;假设randomCookie是你设置的cookie, true是它的值。

所有cookie都按照cookie 规范过期,您可以设置的最大值是

  2^31 - 1 = 2147483647 = 2038-01-19 04:14:07 

所以最大的cookie的使用寿命是

 $.cookie('subscripted_24', true, { expires: 2147483647 }); 

你不能 。 有没有确切的代码来设置一个永远的cookie,但一个古老的把戏会做,像current time + 10 years

只要注意, January 2038以后的任何date都将注定你的cookies( 32位整数 )将立即被删除。 希望奇迹将在不久的将来得到解决。 对于64位int2110年左右的时间将是安全的。 随着时间的推移,软件和硬件将会改变,可能永远不会适应旧的(我们现在拥有的东西),所以现在就将来做好准备。

见2038年的问题

如果您打算仅从客户端读取数据,则可以使用本地存储。 只有当浏览器的caching被清除时才会被删除。

只需跳过对象初始值设定项中的expires参数即可。 这对我来说工作得很好。