php - 从数据库中检索时间时,javascript 计时器不倒计时

标签 php javascript jquery mysqli

我正在尝试按照 jsfiddle 示例在 javascript 中创建时间:

http://jsfiddle.net/g3rRJ/

现在显然 jsfiddle 中的计时器工作正常。但我遇到的问题是计时器启动的时间来自 mysqli/php 变量,它从数据库中检索时间。

所以除了:

<span id="countdown">01:30:10</span>

我必须把它当作:

echo "<p><span id='countdown'>" . $dbSessionDuration . "</span></p>";

除了:

var time = "01:30:10",

我必须把它当作:

var time = <?php echo json_encode($dbSessionDuration); ?>,

现在我没有收到任何错误,但实际情况是计时器没有进行倒计时。我的问题是为什么不倒计时?来自变量的时间示例可以是 01:00:00

下面是函数的代码:

echo "<p><span id='countdown'>" . $dbSessionDuration . "</span></p>";


...

         <script type="text/javascript">


    (function(){
  $(document).ready(function() {
    var time = <?php echo json_encode($dbSessionDuration); ?>,
      parts = time.split(':'),
      hours = +parts[0],
      minutes = +parts[1],
      seconds = +parts[2],
      span = $('#countdown');

    function correctNum(num) {
      return (num<10)? ("0"+num):num;
    }

    var timer = setInterval(function(){
        seconds--;
        if(seconds == -1) {
            seconds = 59;
            minutes--;

            if(minutes == -1) {
                minutes = 59;
                hours--;

                if(hours==-1) {
                  alert("timer finished");
                  clearInterval(timer);
                  return;
                }
            }
        }
        span.text(correctNum(hours) + ":" + correctNum(minutes) + ":" + correctNum(seconds));
    }, 1000);
  }); 
});

</script>

最佳答案

改变这个:

  }); 
});

</script>

为此:

  }); 
})();            //  ←  note the extra parentheses

</script>

以便您实际上调用您的匿名函数。 (或者,您可以简单地完全删除它的 (function(){});。根本没有理由将此代码放在函数中。)

关于php - 从数据库中检索时间时,javascript 计时器不倒计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14740992/

相关文章:

javascript - IE9 <a> 在直接加载的页面中工作,但在通过链接页面访问时不起作用

javascript - 如何使用 jQuery.ajax 向文件 php 发送请求

php - 为什么 html 输入提交不分配 $_POST 数组值

php - 递归 array_diff()?

javascript - JQuery-UI slider 自动递增但不触发幻灯片事件

javascript - 如何正确命名以编程方式创建的标签

javascript - 将 jQuery 添加到第 3 方页面失败

php - SQL/PHP 条件选择和更新

php - mysqli_fetch_array 和 MYSQLI_BOTH 有什么区别?

javascript - React Native - 连字符