js cookie设置最大过期时间 Infinity

Note: 对于永久cookie我们用了Fri, 31 Dec 9999 23:59:59 GMT作为过期日。如果你不想使用这个日期,可使用世界末日Tue, 19 Jan 2038 03:14:07 GMT,它是32位带符号整数能表示从1 January 1970 00:00:00 UTC开始的最大秒长(即01111111111111111111111111111111, 是 new Date(0x7fffffff * 1e3)).

 Infinity 过期时间   9999-12-31 是     9999年12月31日; 

对应 js 操作

https://www.cnblogs.com/surfaces/p/5548999.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<script>
 
//cookie
function addCookie(objName,objValue,objDays){
var str = objName + "=" + escape(objValue);
console.log(Infinity);   //Infinity
console.log(typeof Infinity);   //number
console.log(Infinity.constructor); //function Number() { [native code] }
if(objDays > 0){
var date = new Date();
var ms = objDays*24*3600*1000;
date.setTime(date.getTime() + ms);
str += "; expires=" + date.toGMTString();
}
if(objDays===Infinity){
  str += "; expires=Fri, 31 Dec 9999 23:59:59 GMT";
}
 
str += "; path=/";
document.cookie = str;
};
 
 
 
 var itemtitle=document.querySelector(".item-title");
 document.querySelector(".sava_cookie").addEventListener("click",function(e){
       var putCookieVal=itemtitle.innerHTML;
       addCookie('surface',putCookieVal,Infinity);
      
 });
   
 
</script>

我们设置3个cookie ,看下浏览器的记录; 

https://www.cnblogs.com/surfaces/p/5548999.html

上面三条cookie记录  现在是2016年6月

seseion:cookieMaxAge          过期时间 浏览器会话期间      

hunred-day:cookieMaxAge   过期时间2016年9月11日    固定的一个时间

surface:cookieMaxAge         过期时间9999年12月31日   最大值

  addCookie('surface','cookieMaxAge',Infinity);
  addCookie('hunred-day','cookieMaxAge',100);
  addCookie('Session','cookieMaxAge');

 

第三条  如果不设置expires或者max-age这个cookie默认是Session的,也就是关闭浏览器该cookie就消失了。

 

 

备注:

Note: 对于永久cookie我们用了Fri, 31 Dec 9999 23:59:59 GMT作为过期日。如果你不想使用这个日期,可使用世界末日Tue, 19 Jan 2038 03:14:07 GMT,它是32位带符号整数能表示从1 January 1970 00:00:00 UTC开始的最大秒长(即01111111111111111111111111111111, 是 new Date(0x7fffffff * 1e3)).

参开网站

https://developer.mozilla.org/zh-CN/docs/Web/API/Document/cookie

posted @   surfaces  阅读(35560)  评论(2编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示