我迫切需要一些帮助。 我需要设置一个javascript cookie,在12小时后过期。
我使用以下Javascript代码:
function setCookie(cname,cvalue,exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*12*60*60*1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname+"="+cvalue+"; "+expires;
}
function getCookie(cname) {
var name = cname + "=";
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);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
var 1 = $(this).attr('name');
setCookie("2", 3, 30);
var Get4=$(this).attr('4');
var Get5=$(this).attr('5');
var Get6=$(this).attr('6');
$("#6").val(Get6);
$("#4").val(Get4);
$("#5").val(Get5);
我需要知道的两件主要事情是以下代码的作用及其工作原理
d.setTime(d.getTime() + (exdays*12*60*60*1000)
setCookie("2", 3, 30);
这个setCookie代码中的30意味着什么。是30天30分钟,30分钟还是30小时?
请不要担心他们只是我的问题所在的数字。
非常感谢任何帮助。 提前感谢你。 问候。
答案 0 :(得分:0)
计算d.getTime() + (exdays*12*60*60*1000)
是为了找到cookie过期的绝对时间。 Javascript中的时间是从特定日期开始的毫秒数,这意味着要提前12小时,您需要添加12个小时的时间。相当于当前时间的毫秒(new Date().getTime()
。
因此,要使Cookie在将来12小时后过期,您需要将12*60*60*1000
添加到当前时间毫秒:
var d = new Date();
d.setTime(d.getTime() + 12*60*60*1000);
var expires = "expires=" + d.toGMTString();
document.cookie = cname+"="+cvalue+"; "+expires;
将创建您正在寻找的Cookie值。
30
是exDays
参数,应该是要过期的天数。正如我在评论中提到的,因为天数乘以{{1}并且不是12
,无论如何,该代码都是错误的。