Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery保存时间和到期日期?_Javascript_Jquery_Cookies - Fatal编程技术网

Javascript jQuery保存时间和到期日期?

Javascript jQuery保存时间和到期日期?,javascript,jquery,cookies,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) 当

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

第一个问题:

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

date对象上还有其他几个toString函数,可以帮助您以所需的格式获取它:

第二个问题:

您可以使用“expire”属性传入日期而不是数字。所以你可以这样做:

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 }); 

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

$.cookie('name', new Date().getTime(), { expires: 365 }); 
然后当你找回它的时候

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

“那个奇怪的格式”。。。你的意思是URI编码。您可以使用
decodeURI()
函数获取字符串版本。如果您以正确的格式获取值,为什么要关心它的存储方式?您好,您在哪里使用toString函数?顺便说一句,它根本不保存。谢谢您这样做:
var myDate=new Date();$。cookie('name',myDate.toString(),{expires:expireDate})你说的不工作是什么意思?什么不起作用?该代码将为您获取一个字符串。。。。如果您要复制/粘贴我之前评论中的代码,则需要创建expireDate或将其更改为数字。整个代码不起作用。使用expireDate设置变量时,即不保存过期日期。甚至使用tostring函数也不能将其转换为字符串。和以前一样。我没有在日期中添加toString()。我在“第二个问题”中更新了代码