Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设置cookie在3小时后过期_Javascript_Cookies - Fatal编程技术网

Javascript 设置cookie在3小时后过期

Javascript 设置cookie在3小时后过期,javascript,cookies,Javascript,Cookies,设置cookie在3小时后过期 我有以下JavaScript代码: function createCookie(name,value,days) { if (days) { var date = new Date(); date.setTime(date.getTime()+(days*2*60*60*1000)); var expires = "; expires="+date.toGMTString(); }

设置cookie在3小时后过期

我有以下JavaScript代码:

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*2*60*60*1000));        
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

如何使cookie在3小时后过期?

第一种方法

将函数修改为:

function 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=/";}
您将使用
createCookie(…,…,3)

第二种方法

或使用以下原型:

Date.prototype.addHours= function(h){
    this.setHours(this.getHours()+h);
    return this;
}
以及以下createCookie函数:

  function createCookie(name,value,date) {
        if(date){
            var expires = "; expires="+date.toGMTString();
        }
        else var expires = "";
        document.cookie = name+"="+value+expires+"; path=/";}

您将使用
createCookie(…,…,newdate().addHours(3))

您的代码似乎只为一天的1/12保存cookie

days*2*60*60*1000
应该是

days*24*60*60*1000
因此,当您需要3小时时,您需要将cookie保存为一天的1/8
24/8

function 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=/";
}

createCookie("name", "3 hours", 1/8);

希望是这样

function 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=/";}

代码有误导性。。。该cookie将过期
天*2小时
——因此,调用类似“createCookie”(“blah”,“fred”,1.5)的函数会将
天*2*60*60*1000
更改为
天*24*60*60*1000
,然后将该函数调用为createCookie('name','value',0.125)。可能重复