Can';无法使用javascript在cookie中设置过期日期?

Can';无法使用javascript在cookie中设置过期日期?,javascript,session,cookies,browser,Javascript,Session,Cookies,Browser,我正在使用以下函数 function setCookie(c_name,value,exdays){ var exdate=new Date(); exdate.setDate(exdate.getDate() + exdays); var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); document.cookie=c_name + "=" +

我正在使用以下函数

function setCookie(c_name,value,exdays){
    var exdate=new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
    document.cookie=c_name + "=" + c_value;
}

setCookie("userName","vimalraj.s",1);
它在“会话”中创建cookie,而不是在24小时内过期

如何解决这个问题

更新:

上述代码在我同事的电脑Firefox(27.0.1)中运行良好 对我来说,Firefox的版本不一样

我甚至试过“最大年龄”而不是“过期”


没有任何效果…

摘自quirksmode.org

    function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = 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 c.substring(nameEQ.length,c.length);
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}
函数createCookie(名称、值、天数){
如果(天){
变量日期=新日期();
date.setTime(date.getTime()+(天*24*60*60*1000));
var expires=“;expires=“+date.togmString();
}
else var expires=“”;
document.cookie=name+“=”+value+expires+“path=/”;
}
函数readCookie(名称){
变量nameEQ=name+“=”;
var ca=document.cookie.split(“;”);
对于(变量i=0;i
这是一天的礼物


createCookie('ppkcookie','testcookie',1)

我建议您使用相同的cookie名称创建一个新cookie

现在您可以设置新的过期日期。 这将超越现有的cookie,因为两者的名称相同

现在,新cookie将具有新的过期日期

老曲奇

var d = new Date();
d.setTime(d.getTime()+(exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cname+"="+cvalue+"; "+expires;
新饼干

var d = new Date();
d.setTime(d.getTime()+(exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cname+"="+cvalue+"; "+expires;

我希望这会有所帮助

我认为创建一个具有相同详细信息和新过期日期的新cookie将用新cookie覆盖现有cookie。如果您知道这一点,请原谅。请确保您正在测试来自有效域的cookie内容(localhost不是有效域,会引起一大堆麻烦)。感谢您的回答,这可能是由于我的Firefox版本造成的问题。我的代码在Google Chrome中运行良好,当然我在Firefoxquirksmode示例中是否有问题!写javascript时省略花括号的人应该被枪毙!
var d = new Date();
d.setTime(d.getTime()+(exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cname+"="+cvalue+"; "+expires;