检查倒计时何时到期

时间:2017-11-19 08:46:32

标签: javascript php

我设法出来了一个代码,可以使用基于用户的输入启动Javascript的动态倒计时。

1)但是当我尝试输入他来检查倒计时到期时,它的内部网不起作用......

2)是否可以将倒数计时器存储为具有唯一键的持久性cookie?因此,下次打开时,倒计时将基于唯一键。

我的检查时间功能

function checkTime() {
 var time = document.getElementById('strclock').innerHTML;
 if(time != '00:00:00') {
  //execute some SQL statement
 }elseif(time == '00:00:00'){
  //execute some SQL statement
 }

我的动态倒数计时器

<div id="strclock"></div>
<div id="clock"></div>

<script type="text/javascript">
 var hour = <?php echo floor($hours); ?>;
 var min = <?php echo floor($minutes); ?>;
 var sec = <?php echo floor($seconds); ?>;

(函数checkTime()将插入此处)

function countdown() {
    if(sec <= 0 && min > 0) {
        sec = 60;
        min -= 1;
    }
    else if(min <= 0 && sec <= 0) {
        min = 0;
        sec = 0;
    }
    else {
        sec -= 1;
    }
    if(min <= 0 && hour > 0) {
        min = 60;
        hour -= 1;
    }
    var pat = /^[0-9]{1}$/;
    secs = (pat.test(sec) == true) ? '0'+sec : sec;
    mins = (pat.test(min) == true) ? '0'+min : min;
    hours = (pat.test(hour) == true) ? '0'+hour : hour;

    document.getElementById('strclock').innerHTML = hours+":"+mins+":"+secs;
    if(hour >= 1) { 
           document.getElementById('clock').innerHTML = hour+1+' hour until timer runs out!';
    } 
    else if(min >= 1) {
           document.getElementById('clock').innerHTML = min+' minute until timer runs out!';
    }
    else {
           document.getElementById('clock').innerHTML = sec+' seconds until timer runs out!';
    }
    setTimeout("countdown()",1000);
    }
    countdown();
</script>

1 个答案:

答案 0 :(得分:0)

您的问题的解决方案如下。唯一不同的是内部函数我正在检查document.getElementById('strclock').innerHTML,如果它等于00:00:00我正在提醒停止。代替警报,您可以调用您的功能。 这是一个有效的codepen链接

只需要为此添加

if(time == '00:00:00') {alert("stop")}
        else{ setTimeout("countdown()",1000);}

添加此代码后,您的代码将正常运行。

 <div id="strclock"></div>
    <div id="clock"></div>

    <script type="text/javascript">
     var hour = <?php echo floor($hours); ?>;
     var min = <?php echo floor($minutes); ?>;
     var sec = <?php echo floor($seconds); ?>;

    function countdown() {
        if(sec <= 0 && min > 0) {
            sec = 60;
            min -= 1;
        }
        else if(min <= 0 && sec <= 0) {
            min = 0;
            sec = 0;
        }
        else {
            sec -= 1;
        }
        if(min <= 0 && hour > 0) {
            min = 60;
            hour -= 1;
        }
        var pat = /^[0-9]{1}$/;
        secs = (pat.test(sec) == true) ? '0'+sec : sec;
        mins = (pat.test(min) == true) ? '0'+min : min;
        hours = (pat.test(hour) == true) ? '0'+hour : hour;

        document.getElementById('strclock').innerHTML = hours+":"+mins+":"+secs;
        if(hour >= 1) { 
               document.getElementById('clock').innerHTML = hour+1+' hour until timer runs out!';
        } 
        else if(min >= 1) {
               document.getElementById('clock').innerHTML = min+' minute until timer runs out!';
        }
        else {
               document.getElementById('clock').innerHTML = sec+' seconds until timer runs out!';
        }
        if(time == '00:00:00') {alert("stop")}
        else{ setTimeout("countdown()",1000);}
        }
        countdown();
    </script>