我正在尝试按照 jsfiddle 示例在 javascript 中创建时间:
现在显然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>