创建计时器效果格式' MM:SS:MS'

时间:2017-01-11 16:40:32

标签: javascript

我正在尝试创建一个计时器并每隔ms增加一次。

我的代码目前看起来像这样,并且(显然)没有工作,因为它连接了字符串。有没有相对直接的方法来实现这个?

var num = '00:00:00';

setInterval(function(){
   num += '00:00:01'
}, 1);

2 个答案:

答案 0 :(得分:2)

+=与字符串一起使用会在字符串末尾添加一个值。最好使用数字。为秒数,分钟数和小时数设置单独的变量。如果其中一个的数字是单个数字,则在它前面添加一个零。

这可能不是最有效的方法,但它会起作用。

var timer = document.getElementById("timer");

var seconds = 0;
var minutes = 0;
var hours   = 0;

setInterval(function() {
    seconds++;
    if (seconds === 60) {
        seconds = 0;       // Reset seconds and increase minutes
        minutes++;
    }
    if (minutes === 60) {
        minutes = 0;       // Reset minutes and increase hours
        hours++;
    }
    if (hours === 24) {     // A day has 24 hours
        hours = 0;
    }
  
    timer.innerHTML = [
                       (hours < 10 ? "0" + hours : hours),
                       (minutes < 10 ? "0" + minutes : minutes),
                       (seconds < 10 ? "0" + seconds : seconds)
                      ].join(':');
},1);
<p id="timer"></p>

答案 1 :(得分:0)

var time=[0,0,0];
function increase(){
time[2]++;//secs
if(time[2]>=60){
  time[1]++;
  time[2]=0;
}
if(time[1]>=60){
  time[0]++;
  time[1]=0;
}
if(time[0]>=24){
  time[0]=0;
}
}
function show(){
 //if position has no ten digit, add a zero there, then place : between the digits
 return time.map(e=>e<10?"0"+e:e).join(":");
}

像这样使用:

setInterval(increase,1000);
console.log(show());