【问题标题】:Set a cookie expire after 3 hours设置 cookie 在 3 小时后过期
【发布时间】:2015-07-02 12:22:57
【问题描述】:

设置 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 小时后过期?

【问题讨论】:

  • 代码具有误导性...... cookie 会过期 days * 2 hours - 所以,调用像 `createCookie("blah", "fred", 1.5) 这样的函数就可以了
  • days*2*60*60*1000改成days*24*60*60*1000,然后调用函数createCookie('name', 'value',0.125)。

标签: javascript cookies


【解决方案1】:

您的代码似乎只将 cookie 保存了一天的 1/12。

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);

【讨论】:

    【解决方案2】:

    希望是这样的

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

    【讨论】:

      【解决方案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(...,...,new Date().addHours(3));

      【讨论】:

        猜你喜欢
        • 2013-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-17
        • 1970-01-01
        • 2017-01-11
        相关资源
        最近更新 更多