0

我想知道如何在 jQuery 中保存日期格式。

今天我有了一个想法,用 jQuery 来保存一个 COOKIE。

在我查看了来自另一个站点的 COOKIE 的内容后,我看到它将存储日期。

当我尝试对我的网站做同样的事情时,我使用了以下代码:

$.cookie('name', new Date(), { expires: 365 }); 

COOKIE 将被设置,但不同之处在于内容将以奇怪的格式显示,如下所示:

Thu%20Nov%2007%202013%2020%3A04%3A49%20GMT%2B0100%20(CET)

当我使用以下方法读出 COOKIE 时:

alert( $.cookie('name') );

它将正确显示日期格式。所以我的第一个问题是如何以正确的形式保存日期,例如:

2013 年 11 月 7 日星期四 20:04:49 GMT+0100 (CET)

而不是上面那种奇怪的格式。

我的第二个问题是如何设置将在特定时间结束的到期日期格式。此时它将到期

2014 年 11 月 7 日 20:04:49 GMT+0100 (CET)

但我怎样才能让它过期,例如

2014 年 11 月 7 日 00:00:00 GMT+0100 (CET)

?

非常感谢。

更新:

这是我使用的代码:

...
var now = new Date();
var expireDate = new Date(now.getFullYear(), now.getMonth(), now.getDate());

$.cookie('cookiePolicyConsent', new Date().toString(), { expires: expireDate }); 
...

它不会保存 COOKIE。守则的其余部分仍然有效。只有这行处理了COOKIE。

4

2 回答 2

0

第一个问题:

如果您只想存储文本,请使用toString() 。我同意上面的评论......只要你得到正确的值,它的存储方式真的很重要吗?如果您不想将日期对象放入 cookie 中,则可以使用 .UTC() 或 .getTime()

日期对象上还有其他几个 toString 函数可以帮助您以所需的格式获取它:http: //www.w3schools.com/jsref/jsref_obj_date.asp

第二个问题:

您可以使用“过期”属性传入日期而不是数字。因此,您可以执行以下操作:

var now = new Date();

// Expire the cookie tonight at midnight
var expireDate = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1);

$.cookie('name', new Date().toString(), { expires: expireDate }); 
于 2013-11-07T19:38:03.113 回答
0

如果您像这样以毫秒为单位保存日期可能会更容易

$.cookie('name', new Date().getTime(), { expires: 365 }); 

然后当你检索它时

alert( new Date($.cookie('name')) );
于 2013-11-07T19:44:09.357 回答