设置cookie在3小时后过期

Set a cookie expire after 3 hours

本文关键字:过期 3小时 cookie 设置      更新时间:2023-09-26

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

我怎样才能让饼干在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=/";}

第一种方法

将功能修改为:

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(...,...,new Date().addHours(3));