我正在尝试设置一个将在当天结束时过期的Cookie。我创建了这个函数:
function mnc(cname,cvalue)
{
var now = new Date();
var expire = new Date();
expire.setFullYear(now.getFullYear());
expire.setMonth(now.getMonth());
expire.setDate(now.getDate()+1);
expire.setHours(0);
expire.setMinutes(0);
//alert(expire.toGMTString() + " " + expire.toString());
var expires = "expires="+expire.toString();
alert(expires + "=> now =" + now);
document.cookie = cname + "=" + cvalue + "; " + expires +"; path=/";
}
小提琴:http://jsfiddle.net/MYs6b/
因此,警告框显示了良好的到期日期。 但是,如果我通过添加1或100天来更改计算机上的日期,我仍然在cookie中具有相同的值。
为什么呢?我正在搜索3个小时,我不明白......
编辑:
我对“document.cookie”的警告是空的
http://jsfiddle.net/MYs6b/2/
编辑2: 我添加了一个更好的问题示例。它正在使用IE和FF,但不适用于chrome:
http://jsfiddle.net/5h87M/1/
答案 0 :(得分:1)
试试这个:http://jsfiddle.net/MYs6b/1/
function mnc(cname,cvalue)
{
var now = new Date();
var expire = new Date();
expire.setFullYear(now.getFullYear());
expire.setMonth(now.getMonth());
expire.setDate(now.getDate()+1);
expire.setHours(0);
expire.setMinutes(0);
expire.setSeconds(0);
var expires = "expires="+expire.toString();
alert(expires + "=> now =" + now);
document.cookie = cname + "=" + cvalue + "; " + expires +"; path=/";
}
mnc("test", "123456");
答案 1 :(得分:0)
Chrome的上次更新纠正了这个问题。
答案 2 :(得分:0)
function createCookie(name,value,path) {
var expires = "";
var date = new Date();
var midnight = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
expires = "; expires=" + midnight.toGMTString();
if (!path) {
path = "/";
}
document.cookie = name + "=" + value + expires + "; path=" + path;
}