gpt4 book ai didi

javascript - 在设置 cookie 时指定到期日期时可以使用哪些日期格式?

转载 作者:IT王子 更新时间:2023-10-29 03:09:36 28 4
gpt4 key购买 nike

我正在使用一个设置 cookie 的函数。此函数允许将 cookie 名称、cookie 值和附加的 cookie 到期日期传递给它。

function setCookie(name, value, exdate) {
var c_value = escape(value) +
((exdate === null || exdate === undefined) ? "" : "; expires=" + exdate);
document.cookie = name + "=" + c_value;
};

用法:

setCookie("my-cookie-name","my-value","Sun, 15 Jul 2012 00:00:01 GMT");

我已经使用了上述日期格式的函数,并且相信它是跨浏览器兼容的,因为我已经测试过在关闭各种浏览器并重新打开它们后 cookie 是否仍然存在。我发现在使用像 "15 Jul 2012" 这样的格式时会出现问题。这种格式在 Firefox 开发期间对我有用,但其他浏览器似乎只将 cookie 设置为 session cookie。

我应该坚持只使用这种格式:"Sun, 15 Jul 2012 00:00:01 GMT" 还是有其他我可以使用的适用于主要市场的到期日期格式浏览器(IE 7-9、Firefox、Chrome、Opera、Safari)?

最佳答案

根据测试和进一步阅读,cookie 需要 UTC/GMT 格式的日期,例如2012 年 7 月 15 日,星期日 00:00:01 GMT

因此,任何其他格式的日期,例如 2012 年 7 月 15 日,或 15/Jul/2012,或 07/15/2012,必须作为 new Date 对象传递,然后通过 toUTCString()toGMTString() 函数传递。

因此我将函数编辑为以下内容:

function setCookie(name, value, exdate) {
//If exdate exists then pass it as a new Date and convert to UTC format
(exdate) && (exdate = new Date(exdate).toUTCString());
var c_value = escape(value) + ((exdate === null || exdate === undefined) ? "" : "; expires=" + exdate);
document.cookie = name + "=" + c_value;
};

关于javascript - 在设置 cookie 时指定到期日期时可以使用哪些日期格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11136372/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com