Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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 如何在刷新浏览器时使倒计时计时器不重置?_Javascript_Php_Web_Timer_Countdown - Fatal编程技术网

Javascript 如何在刷新浏览器时使倒计时计时器不重置?

Javascript 如何在刷新浏览器时使倒计时计时器不重置?,javascript,php,web,timer,countdown,Javascript,Php,Web,Timer,Countdown,当我刷新浏览器时,计时器将重置,那么如何使其不重置? 这是我的密码。请检查一下 <?php echo $waktune; ?> // You can change it into seconds //您可以将其更改为秒 var-detik=; if(document.images){ parselimit=detik } 函数begintimer(){ 如果(!document.images) 返回 如果(解析极限x&&cookie已经设置的情况下才能重置计时器 在init上设置

当我刷新浏览器时,计时器将重置,那么如何使其不重置? 这是我的密码。请检查一下

<?php echo $waktune; ?> // You can change it into seconds
//您可以将其更改为秒
var-detik=;
if(document.images){
parselimit=detik
}
函数begintimer(){
如果(!document.images)
返回
如果(解析极限<12){
document.getElementById(“servertime”).style.color=“绿色”;
}
if(parselimit==1){
document.getElementById(“hasil”).submit();
}否则{
parselimit-=1 curmin=Math.floor(parselimit/60)
cursec=parselimit%60
如果(curmin!=0)
curtime=curmin+”:“+cursec+”其他
curtime=cursec+“detik”document.getElementById(“servertime”).innerHTML=curtime setTimeout(“begintimer()”,1000)
}
}

我认为您必须在cookie中保存一些值,并且只有在timer>x&&cookie已经设置的情况下才能重置计时器

在init上设置cookie:

setcookie("reloaded","true");
重新加载时设置cookie:

setcookie("reloaded","false");
检查:

if($_COOKIE["reloaded"] == false && timer > $time) {
   /* reset timer */
}

将服务器时间存储在cookie中(请参阅),然后加载该cookie。不过,您需要考虑希望此cookie持续多长时间。

尝试使用会话存储:

// Store
sessionStorage.setItem("key", "value");
// Retrieve
document.getElementById("result").innerHTML=sessionStorage.getItem("key"); 
更新

例如:

<head>

</head>
<body>
    <div id="divCounter"></div>
    <script type="text/javascript">
    if (sessionStorage.getItem("counter")) {
      if (sessionStorage.getItem("counter") >= 10) {
        var value = 0;
      } else {
        var value = sessionStorage.getItem("counter");
      }
    } else {
      var value = 0;
    }
    document.getElementById('divCounter').innerHTML = value;

    var counter = function () {
      if (value >= 10) {
        sessionStorage.setItem("counter", 0);
        value = 0;
      } else {
        value = parseInt(value) + 1;
        sessionStorage.setItem("counter", value);
      }
      document.getElementById('divCounter').innerHTML = value;
    };

    var interval = setInterval(counter, 1000);
  </script>
</body>

if(sessionStorage.getItem(“计数器”)){
if(sessionStorage.getItem(“计数器”)>=10){
var值=0;
}否则{
var值=sessionStorage.getItem(“计数器”);
}
}否则{
var值=0;
}
document.getElementById('divCounter')。innerHTML=value;
变量计数器=函数(){
如果(值>=10){
sessionStorage.setItem(“计数器”,0);
数值=0;
}否则{
value=parseInt(value)+1;
sessionStorage.setItem(“计数器”,值);
}
document.getElementById('divCounter')。innerHTML=value;
};
var间隔=设置间隔(计数器,1000);
您可以使用,例如:

localStorage.setItem('countDownValue', curtime); // To set the value
...
curtime = localStorage.getItem('countDownValue'); // To get the value

函数getCookie(cname){
变量名称=cname+“=”;
var decodedCookie=decodeURIComponent(document.cookie);
var ca=decodedCookie.split(“;”);
对于(变量i=0;i 0){
cnt=getCookie(“cnt”);
}
cnt-=1;
document.cookie=“cnt=”+cnt;
jQuery(“#counter”).val(getCookie(“cnt”);
如果(cnt>0){
设置超时(计数器,1000);
}
}
计数器();

来源:

如何使用JavaScript创建倒计时计时器

var countDownDate = new Date("Jan 5, 2021 15:37:25").getTime();

// Update the count down every 1 second
var x = setInterval(function() {

  // Get today's date and time
  var now = new Date().getTime();

  // Find the distance between now and the count down date
  var distance = countDownDate - now;

  // Time calculations for days, hours, minutes and seconds
  var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);

  // Output the result in an element with id="demo"
  document.getElementById("demo").innerHTML = hours + "h "
  + minutes + "m " + seconds + "s ";

  // If the count down is over, write some text 
  if (distance < 0) {
    clearInterval(x);
    document.getElementById("demo").innerHTML = "EXPIRED";
  }
}, 1000);
var countDownDate=新日期(“2021年1月5日15:37:25”).getTime();
//每1秒更新一次倒计时
var x=setInterval(函数(){
//获取今天的日期和时间
var now=new Date().getTime();
//找出现在和倒计时日期之间的距离
var距离=倒计时日期-现在;
//天、小时、分钟和秒的时间计算
可变小时数=数学楼层((距离%(1000*60*60*24))/(1000*60*60));
var分钟=数学楼层((距离%(1000*60*60))/(1000*60));
var秒=数学楼层((距离%(1000*60))/1000);
//在id=“demo”的元素中输出结果
document.getElementById(“demo”).innerHTML=hours+“h”
+分钟+米+秒+秒;
//如果倒计时结束,写一些文字
如果(距离<0){
净间隔(x);
document.getElementById(“demo”).innerHTML=“过期”;
}
}, 1000);


希望得到帮助。

你能告诉我在哪里写这段代码吗?或者给我举个例子。对不起,我是javascript的新手。
<form name="counter">
    <input type="text" size="8" name="chandresh" id="counter">
</form>

<script type="text/javascript">
function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.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 cnt = 60;
function counter(){
    if(getCookie("cnt") > 0){
        cnt = getCookie("cnt");
    }
    cnt -= 1;
    document.cookie = "cnt="+ cnt;
    jQuery("#counter").val(getCookie("cnt"));

    if(cnt>0){
        setTimeout(counter,1000);
    }

}

counter();
</script>
var countDownDate = new Date("Jan 5, 2021 15:37:25").getTime();

// Update the count down every 1 second
var x = setInterval(function() {

  // Get today's date and time
  var now = new Date().getTime();

  // Find the distance between now and the count down date
  var distance = countDownDate - now;

  // Time calculations for days, hours, minutes and seconds
  var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);

  // Output the result in an element with id="demo"
  document.getElementById("demo").innerHTML = hours + "h "
  + minutes + "m " + seconds + "s ";

  // If the count down is over, write some text 
  if (distance < 0) {
    clearInterval(x);
    document.getElementById("demo").innerHTML = "EXPIRED";
  }
}, 1000);