我正在尝试创建一个计时器并每隔ms增加一次。
我的代码目前看起来像这样,并且(显然)没有工作,因为它连接了字符串。有没有相对直接的方法来实现这个?
var num = '00:00:00';
setInterval(function(){
num += '00:00:01'
}, 1);
答案 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());