如何更新 cookie 值(并且不更改到期日期)?JavaScript

How to update a cookie value (and not change the expire date)? javascript

本文关键字:日期 JavaScript 何更新 更新 cookie      更新时间:2023-09-26

我有下一个代码:

检查我的 cookie 是否存在,如果不存在,则创建名为 value 的 cookie在其他里面,我再次读取cookie并检查值是否为1,在这里我想设置一个新值,但不更改此cookie的过期日期和时间,仅更新值

if( readCookie("value")==null)
{
createCookie("value",1,1);
}
else
{
if(readCookie("value")==1)
{
/*here I would like to set to cookie called value the new value to 2 */
}
else
{
alert("no es uno");
}
}
function createCookie(name, value, days) {
    var expires;
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toGMTString();
    } else {
        expires = "";
    }
    document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) + expires + "; path=/";
}
function readCookie(name) {
    var nameEQ = encodeURIComponent(name) + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) === ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) === 0) return decodeURIComponent(c.substring(nameEQ.length, c.length));
    }
    return null;
}
function eraseCookie(name) {
    createCookie(name, "", -1);
}

虽然您无法直接检查到期日期,但当您设置 cookie 时,您可以将到期日期存储为 cookie 的一部分。然后,每当您想检查到期日期时,都可以查看cookie的该部分。要在不影响到期日期的情况下更改 cookie,只需重新创建 cookie,替换到期日期即可。

document.cookie="username=John Doe Thu, 18 Dec 2013 12:00:00 UTC; expires=Thu, 18 Dec 2013 12:00:00 UTC";

在创建 Cookie 时,您始终可以更改其到期日期。

JavaScript 中没有办法get设置的 cookie 的到期日期,你可以只获取 cookie 的值,所以,我想,如果没有这些知识,你就无法在不替换以前的过期值的情况下设置 cookie。