Javascript cookies - 设置cookie在12小时后过期

时间:2016-09-08 13:16:00

标签: javascript cookies

我迫切需要一些帮助。 我需要设置一个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小时?

请不要担心他们只是我的问题所在的数字。

非常感谢任何帮助。 提前感谢你。 问候。

1 个答案:

答案 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值。

30exDays参数,应该是要过期的天数。正如我在评论中提到的,因为天数乘以{{1}并且不是12,无论如何,该代码都是错误的。