【问题标题】:How to set a cookie to expire in 1 hour in Javascript?如何在 Javascript 中设置 cookie 在 1 小时内过期?
【发布时间】:2010-09-25 18:25:17
【问题描述】:

如何设置这个cookie从当前时间开始一小时后过期:

document.cookie = 'username=' + value; + 'expires=' + WHAT GOES HERE?; + 'path = /';

【问题讨论】:

    标签: javascript


    【解决方案1】:

    代码:

    var now = new Date();
    var time = now.getTime();
    time += 3600 * 1000;
    now.setTime(time);
    document.cookie = 
    'username=' + value + 
    '; expires=' + now.toUTCString() + 
    '; path=/';
    

    【讨论】:

    • 谢谢 - 我正在使用 .toGTMString - 没有意识到它已被弃用!
    • 为什么要3600*1000?
    • 60*60(每分钟 60 分钟 60 秒)和 1000 是每秒毫秒
    【解决方案2】:

    你可以用更紧凑的方式写这个:

    var now = new Date();
    now.setTime(now.getTime() + 1 * 3600 * 1000);
    document.cookie = "name=value; expires=" + now.toUTCString() + "; path=/";
    

    对于像我这样浪费了一个小时试图弄清楚为什么在 Chrome 中没有设置过期 cookie(但可以设置没有过期)的人来说,这里是答案:

    出于某种奇怪的原因,Chrome 团队决定忽略来自本地页面的 cookie。因此,如果您在 localhost 上执行此操作,您将无法在 Chrome 中看到您的 cookie。所以要么上传到服务器上,要么使用其他浏览器。

    【讨论】:

      【解决方案3】:

      您可以使用max-age,而不是使用过期。 Max-Age 超过 expires 并接受以秒为单位的过期持续时间。

      对于您的示例,考虑到一小时是 3600 秒,代码将是:

      document.cookie = 'username=' + value + '; max-age=3600; path=/';
      

      【讨论】:

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