我目前有一个计时器,它可以完全按照我想要的方式运行,除非它倒计时它显示2:0时显示2:00。它还显示1:00,1:01,1:02等1:0,1:1,1:2等。但是1:59到1:11和0:11到0:59会正确显示。基本上它正确地显示0-9秒显示。这是我的代码和codepen
JS
$(function () {
var $startTimer = $('#startTimer');
var $timerDisplay = $('#timerDisplay');
var time = 120;
$timerDisplay.hide();
$startTimer.click(function () {
$startTimer.prop('disabled', true);
$timerDisplay.show();
var timeRemaining = time;
var intervalId = setInterval(function () {
var timeStamp = Math.floor(timeRemaining/60) + ':' + timeRemaining%60;
$timerDisplay.text(timeStamp);
if (timeRemaining === 0) {
clearInterval(intervalId);
$timerDisplay.fadeOut();
alert('Time is up, please submit a vote :)');
$startTimer.prop('disabled', false);
} else {
timeRemaining--;
}
}, 1000);
});
});
HTML
<div id="timerDisplay"></div>
<button id="startTimer">Start Timer</button>
这是一个codepen http://codepen.io/Chevex/pen/RNomGG
答案 0 :(得分:0)
您需要填充timeRemaining%60
有许多方法可以在Javascript中填零。
对于此应用程序,具体而言,我建议替换:
var timeStamp = Math.floor(timeRemaining/60) + ':' + timeRemaining%60;
带
var seconds = timeRemaining%60;
seconds = ("0" + seconds).slice (-2);
var timeStamp = Math.floor(timeRemaining/60) + ':' + seconds;
这是通过零填充每个变量秒,然后取最后两位数 - 例如0
变为00
,但57
变为057
,但切片会占据最后两个。