我有这个JavaScript代码:
function spu_createCookie(name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else
var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
如何让Cookie在2小时后过期?
答案 0 :(得分:8)
如果您想使用相同类型的功能,请将days
参数转换为hours
并传递2
以获得2小时的到期日期。
function spu_createCookie(name, value, hours)
{
if (hours)
{
var date = new Date();
date.setTime(date.getTime()+(hours*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else
{
var expires = "";
}
document.cookie = name+"="+value+expires+"; path=/";
}
答案 1 :(得分:5)
试试这个:
function writeCookie (key, value, hours) {
var date = new Date();
// Get milliseconds at current time plus number of hours*60 minutes*60 seconds* 1000 milliseconds
date.setTime(+ date + (hours * 3600000)); //60 * 60 * 1000
window.document.cookie = key + "=" + value + "; expires=" + date.toGMTString() + "; path=/";
return value;
};
用法:
<script>
writeCookie ("myCookie", "12345", 24);
</script>
//for 24 hours
答案 2 :(得分:5)
最明显的事情是让“过期”日期+2小时? :)。在这里你有一个很好的原型: Adding hours to Javascript Date object?
答案 3 :(得分:1)
试试jquery-cookie。使用cookies非常容易。
答案 4 :(得分:1)
下面的单行程序将设置一个 cookie,name
,其值为 value
,并且自创建之时起两小时过期。如果提供了可选参数 days
,则 cookie 将在该天数后过期。
警告:没有错误检查,所以如果在调用时省略了强制参数,或者参数输入错误,函数将抛出错误。
spu_createCookie = (name, value, days) => { document.cookie = `${name}=${value}; expires=${new Date(Date.now() + (days ? 86400000 * days : 7200000)).toGMTString()}; path=/` }
相关的 JavaScript 语法概念:
<块引用>箭头函数表达式是传统函数表达式的紧凑替代品,但有局限性,不能在所有情况下使用。
<块引用>模板文字是允许嵌入表达式的字符串文字。您可以使用多行字符串和字符串插值功能。
<块引用>条件(三元)运算符是唯一一个接受三个操作数的 JavaScript 运算符......该运算符经常用作 if 语句的快捷方式。
答案 5 :(得分:0)
这样做。
var now = new Date();
var time = now.getTime();
time += 7200 * 1000;
now.setTime(time);
document.cookie =
name+ '=' + value +
'; expires=' + now.toGMTString() +
'; path=/';