0

嗨,我想在 javascript 完成 24 小时后打开一个特定的面板。我正在尝试这样做,但它不起作用。这是我的代码:

var currentTime = new Date().getTime();
var visitedTime = Get_Cookie('lastvisitedtime');
if (!visitedTime || visitedTime < (currentTime - 24*60*60*1000) ) {
    alert('visitedTime = ' + visitedTime);
    Set_Cookie("lastvisitedtime", currentTime);

}
else{
    Set_Cookie("lastvisitedtime", currentTime); //first time
}

但它总是去其他部分。我怎样才能实现它,以便它进入 if 条件并显示警报部分。

任何帮助表示赞赏。谢谢

4

1 回答 1

0

更正的代码..

脚步:

  1. 在开始时将 lastvisitedtime cookie 值设置为 0
  2. 调用 setInterval() 方法,该方法将在 1000 毫秒后调用自身。它将在 1000 毫秒后调用 timeEvent() 函数。
  3. 应用 if 条件来检查visitedTime 是否为 0 或者它是否具有某些有效值
  4. 如果visitedTime 有一些有效的时间值,则应用if 条件来检查visitedTime 和currentTime 之间的时间差

    演示 jsfiddle

    // In start set cookie to null 
    setCookie("lastvisitedtime", 0);
    
    setInterval(function(){timeEvent()}, 1000);
    
    function timeEvent(){   
        var currentTime = (new Date()).getTime();
        var visitedTime = getCookie('lastvisitedtime');
        if (visitedTime != 0){
          if((currentTime - visitedTime) >= 60*1000){
             alert('visitedTime = ' + visitedTime);
             setCookie("lastvisitedtime", currentTime);
           }  
        }
       else{
            setCookie("lastvisitedtime", currentTime); //first time
       }
    }
    
    
    
    function getCookie(c_name)
     {
      var c_value = document.cookie;
      var c_start = c_value.indexOf(" " + c_name + "=");
      if (c_start == -1)
      {
        c_start = c_value.indexOf(c_name + "=");
     }
     if (c_start == -1)
     {
       c_value = null;
     }
     else
    {
       c_start = c_value.indexOf("=", c_start) + 1;
       var c_end = c_value.indexOf(";", c_start);
    if (c_end == -1)
    {
       c_end = c_value.length;
    }
       c_value = unescape(c_value.substring(c_start,c_end));
    }  
    return c_value;
    }
    
    function setCookie(c_name,value,exdays)
    {
      var exdate=new Date();
      exdate.setDate(exdate.getDate() + exdays);
      var c_value=escape(value) + ((exdays==null) ? "" : ";        expires="+exdate.toUTCString());
      document.cookie=c_name + "=" + c_value;
    }
    
    function checkCookie()
    {
       var username=getCookie("username");
       if (username!=null && username!="")
     {
        alert("Welcome again " + username);
     }
     else 
     {
        username=prompt("Please enter your name:","");
        if (username!=null && username!="")
       {
          setCookie("username",username,365);
       }
     }
    }
    
于 2013-09-18T08:27:08.923 回答