如何在午夜使用Jquery使Cookie过期?

时间:2011-01-07 16:34:59

标签: jquery jquery-plugins

我这样做了:

$.cookie("ultOS", (i), {expires:1});

但它只会在第二天到期。

如何在午夜过期?

这会改变吗?

var date = new Date();
var midnight = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
$.cookie("ultOS", (i), {expires: midnight});

4 个答案:

答案 0 :(得分:10)

我认为这样可行:

var currentDate = new Date();
expirationDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate()+1, 0, 0, 0);
$.cookie("ultOS", "5", {expires: expirationDate});

答案 1 :(得分:3)

根据最新版本的cookie插件(假设这是你正在使用的那个:http://plugins.jquery.com/project/Cookie),你可以传入一个普通的Date对象。

我没有尝试过,但插件的来源相当简单......

if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }

如果您传入一个数字,则会假定该天数。如果您传入日期,则需要这样做。

答案 2 :(得分:1)

var date = new Date();
var midnight = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59);
var expires = "expires="+midnight.toGMTString();

答案 3 :(得分:0)

您可以使用今晚(午夜)值创建一个Javascript Date对象,然后按如下方式设置到期日期:

 $.cookie("example", "foo", { expires: date });

其中date是日期对象。