jQuery节省时间和到期日期?

时间:2013-11-07 19:32:59

标签: javascript jquery cookies

我想知道如何在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。

2 个答案:

答案 0 :(得分: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 }); 

答案 1 :(得分:0)

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

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

然后当你找回它时

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