简单的JavaScript定时器函数
因此,我编写了一个计时器,当页面加载时启动,当用户单击“完成”按钮时停止简单的JavaScript定时器函数,javascript,timer,Javascript,Timer,因此,我编写了一个计时器,当页面加载时启动,当用户单击“完成”按钮时停止 无法使用setInterval计算时间,因为它不精确,但可以使用setInterval计算日期时间开始和日期时间停止的差值(以秒为单位),并更新页面上的计时器div JS: HTML: 停止 如果您能在一行中完成这项工作,那么最好在询问时这样做。只需减去毫秒,然后转换成小时/分钟/秒。 <br><button id = "finish" onclick = "stopTimer();">
无法使用
setInterval
计算时间,因为它不精确,但可以使用setInterval
计算日期时间开始和日期时间停止的差值(以秒为单位),并更新页面上的计时器div
JS:
HTML:
停止
如果您能在一行中完成这项工作,那么最好在询问时这样做。只需减去毫秒,然后转换成小时/分钟/秒。
<br><button id = "finish" onclick = "stopTimer();">Done</button>
//Stop timer function
function stopTimer() {
clearInterval(time);
}
//Start timer function
var secTime = 0,
minTime = 0,
hourTime = 0;
var time = setInterval(function(){
var maxSec = 59,
maxMin = 59,
maxHour = 59;
if(secTime > maxSec){
minTime++;
if(minTime > maxMin){
hourTime++;
if(hourTime > maxHour){
hourTime = 0;
minTime = 0;
secTime = 0;
}
minTime = 0
}
secTime = 0;
}
var newSec = (secTime.toString().length == 1) ? '0' + secTime : secTime,
newMin = (minTime.toString().length == 1) ? '0' + minTime : minTime,
newHour = (hourTime.toString().length == 1) ? '0' + hourTime : hourTime;
document.getElementById('timer').innerHTML = newHour + ':' + newMin + ':' + newSec;
secTime++;
}, 1000);
var dateTimeStart = new Date();
var intervalId;
var seconds = 0;
function start(){
updateTimer();
intervalId = setInterval(function(){
seconds = Math.floor((new Date() - dateTimeStart) / 1000);
updateTimer();
}, 1000);
}
function stop(){
clearInterval(intervalId);
}
function updateTimer(){
var date = new Date(1970, 0, 1);
date.setSeconds(seconds);
document.getElementById('timer').innerHTML = format(date);
}
function format(date){
return twodigits(date.getHours()) + ':' + twodigits(date.getMinutes()) + ':' + twodigits(date.getSeconds());
}
function twodigits(number){
var str = '0' + number;
return str.substr(-2);
}
function action(name){
document.getElementById('action').innerHTML = name;
}
start();
<div id="timer"></div>
<button type="button" onclick="stop();">STOP</button>