我终于设法让我的24小时非日期可靠的倒数计时器。这样做的目的是每次有人访问该网站时都会开始倒计时。问题是,当任何单位(小时,分钟,秒)达到一位数时,值显示它们而不是标准时间格式(9分钟而不是09分钟,应该如此)。如何实现一个条件,如果一个值' s< = 9,它之前会加一个0?
var count = 86400;
var counter = setInterval(timer, 1000); //1000 will run it every 1 second
function timer() {
count = count - 1;
if (count == -1) {
clearInterval(counter);
return;
}
var seconds = count % 60;
var minutes = Math.floor(count / 60);
var hours = Math.floor(minutes / 60);
minutes %= 60;
hours %= 60;
document.getElementById("timer").innerHTML = hours + ":" + minutes + ":" + seconds; // watch for spelling
}

<span id='timer'></span>
&#13;
答案 0 :(得分:4)
创建一个类似于以下功能的功能:
function makeMeTwoDigits(n){
return (n < 10 ? "0" : "") + n;
}
在打印您的号码之前,请调用此功能:
document.getElementById("timer").innerHTML = makeMeTwoDigits(hours) + ":" + makeMeTwoDigits(minutes) + ":" + makeMeTwoDigits(seconds);
说明:
像@rfornal所说,我们要检查数字是否小于10,这意味着单个数字,添加&#39; 0&#39;并返回否则不添加任何内容并返回。
需要注意的一点是,如果数字是负数,这将不会起作用。
答案 1 :(得分:0)
尝试......
document.getElementById("timer").innerHTML
= (hours<10 ? "0" + hours : hours) + ":"
+ (minutes<10 ? "0" + minutes : minutes) + ":"
+ (seconds<10 ? "0" + seconds : seconds);
基本上,如果该值小于10,请放置"0"
;否则只是价值。另一种说法是条件?然后:否则......
另一条路线...更多代码将是:
var t_hours, t_minutes, t_seconds;
if (hours<10) {
t_hours = "0" + hours;
} else {
t_hours = hours;
}
if (minutes<10) {
t_minutes = "0" + minutes;
} else {
t_minutes = minutes;
}
if (seconds<10) {
t_seconds = "0" + seconds;
} else {
t_seconds = seconds;
}
document.getElementById("timer").innerHTML
= t_hours + ":" t_minutes + ":" t_seconds;
答案 2 :(得分:0)
您可以使用How to output integers with leading zeros in JavaScript
中的通用打击垫功能function pad(num, size) {
var s = num+"";
while (s.length < size) s = "0" + s;
return s;
}
并将您的代码更改为:
document.getElementById("timer").innerHTML = pad(hours,2) + ":" + pad(minutes,2) + ":" + pad(seconds,2);