Javascript 设置cookie时指定到期日期时可以使用哪些日期格式?
我正在使用一个设置cookie的函数。此函数允许将cookie名称、cookie值和cookie的附加到期日期传递给它Javascript 设置cookie时指定到期日期时可以使用哪些日期格式?,javascript,cookies,Javascript,Cookies,我正在使用一个设置cookie的函数。此函数允许将cookie名称、cookie值和cookie的附加到期日期传递给它 function setCookie(name, value, exdate) { var c_value = escape(value) + ((exdate === null || exdate === undefined) ? "" : "; expires=" + exdate); document.
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是否仍然存在。我发现在使用类似于“2012年7月15日”
的格式时出现了问题。在Firefox的开发过程中,这种格式对我很有效,但其他浏览器似乎只将cookie设置为会话cookie
我是否应该坚持使用以下格式:
“Sun,2012年7月15日00:00:01 GMT”
,或者是否有其他格式可以在主要浏览器(IE 7-9、Firefox、Chrome、Opera、Safari)中使用,以测试和进一步阅读为基础,Cookie需要UTC/GMT格式的日期,例如2012年7月15日00:00:01 GMT的太阳
因此,其他格式的任何日期,如2012年7月15日、2012年7月15日或2012年7月15日,都必须作为新日期对象传递,然后通过toutstring()
或togmstring()
函数传递
因此,我将我的函数编辑为以下内容:
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;
};
使用cookie日期格式,因此
“Sun,2012年7月15日00:00:01 GMT”
有效
如果我理解正确,将识别其他格式,例如:
00:00:01 2012年7月15日
,但不应生成这些格式。找到日期格式ddd,dd-MMM-yyyy-HH':'mm':'ss'GMT'
。希望有人发现这是有用的。另外,非常好的参考资料实际上有3种格式支持空格(Sun,1994年11月6日08:49:37 GMT
)、破折号(Sunday,1994年11月6日08:49:37 GMT
)和“混合格式”(Sun,1994年11月6日08:49:37 GMT
)@Alexiswillke单击链接(其中包含rfc1123日期)是的,我看到另外两个标记为不推荐。所以你应该只使用第一个。你能添加一个链接,显示你在哪里找到的信息吗?