我想以 hh:mm:ss
格式倒计时器,所以我使用此代码,它将秒转换为所需的格式,但当我倒计时时,它显示我 NaN
。你能告诉我我做错了什么吗
这是代码
<div id="timer"></div>
JS
String.prototype.toHHMMSS = function () {
var sec_num = parseInt(this, 10); // don't forget the second parm
var hours = Math.floor(sec_num / 3600);
var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
var seconds = sec_num - (hours * 3600) - (minutes * 60);
if (hours < 10) {
hours = "0" + hours;
}
if (minutes < 10) {
minutes = "0" + minutes;
}
if (seconds < 10) {
seconds = "0" + seconds;
}
var time = hours + ':' + minutes + ':' + seconds;
return time;
}
var count = '62';
count = count.toHHMMSS();
var counter = setInterval(timer, 1000);
function timer() {
count--;
if (count <= 0) {
clearInterval(counter);
return;
}
$('#timer').html(count);
}
这是 JsFiddle 链接 CountDown Timer
最佳答案
好吧,让我们看看您的代码做了什么:
- 将
count
设置为字符串值62
。 - 将其转换为 HHMMSS,因此现在
count
等于字符串00:01:02
- 启动计时器。
- 第一次运行计时器时,减少
计数
。呃...count
是一个字符串,你不能递减它。结果不是数字。
好的,既然如此,如何修复它:
function formatTime(seconds) {
var h = Math.floor(seconds / 3600),
m = Math.floor(seconds / 60) % 60,
s = seconds % 60;
if (h < 10) h = "0" + h;
if (m < 10) m = "0" + m;
if (s < 10) s = "0" + s;
return h + ":" + m + ":" + s;
}
var count = 62;
var counter = setInterval(timer, 1000);
function timer() {
count--;
if (count < 0) return clearInterval(counter);
document.getElementById('timer').innerHTML = formatTime(count);
}
关于javascript - 倒计时 HH :MM:SS in Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18506582/