设置Cookie会在2小时后过期

时间:2013-09-28 15:59:28

标签: javascript cookies

我有这个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小时后过期?

6 个答案:

答案 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 语法概念:

  1. Arrow Functions
<块引用>

箭头函数表达式是传统函数表达式的紧凑替代品,但有局限性,不能在所有情况下使用。

  1. Template Literals
<块引用>

模板文字是允许嵌入表达式的字符串文字。您可以使用多行字符串和字符串插值功能。

  1. Ternary Operators
<块引用>

条件(三元)运算符是唯一一个接受三个操作数的 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=/';