将0添加到此倒数计时器

时间:2015-04-06 19:40:31

标签: javascript timer countdown

我终于设法让我的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;
&#13;
&#13;

3 个答案:

答案 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);