Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中的秒表比正常时间慢_Javascript_Timer - Fatal编程技术网

Javascript中的秒表比正常时间慢

Javascript中的秒表比正常时间慢,javascript,timer,Javascript,Timer,我想用JavaScript制作一个秒表,可以计算毫秒、秒和分钟。这就是我所拥有的:(按空格键可以停止计时器) var counter=document.getElementsByTagName('h1')[0]; var毫秒=0; var秒=0; var分钟=0; 函数Add(){ 毫秒++; 如果(毫秒>=99){ 毫秒=0; 秒++; 如果(秒>=59){ 秒=0; 分钟++; } } counter.textContent=(分钟数?(分钟数>9?分钟数:“0”+分钟数):“00”)+”

我想用JavaScript制作一个秒表,可以计算毫秒、秒和分钟。这就是我所拥有的:(按空格键可以停止计时器)

var counter=document.getElementsByTagName('h1')[0];
var毫秒=0;
var秒=0;
var分钟=0;
函数Add(){
毫秒++;
如果(毫秒>=99){
毫秒=0;
秒++;
如果(秒>=59){
秒=0;
分钟++;
}
}
counter.textContent=(分钟数?(分钟数>9?分钟数:“0”+分钟数):“00”)+”:“+
(秒)(秒>9秒:“0”+秒):“00”+:“+
(毫秒?(毫秒>9?毫秒:“0”+毫秒):“00”);
定时器();
}
函数计时器(){
t=设置超时(加10);
}
定时器();
文件.添加的文本列表器(“按键”,功能(e){
如果(例如keyCode===32){
清除超时(t);
}
});

00:00:00
您应该创建一个startTime变量,然后计算elapsedTime,并使用该变量计算要显示的其他变量

var startTime = Date.now();
setTimeout(function(){
    var elapsedTime = Date.now() - startTime;
    // Additional code to calculate hour, minute, second, milisecond here
}, 10);

您应该创建一个startTime变量,然后计算elapsedTime,并使用该变量计算要显示的其他变量

var startTime = Date.now();
setTimeout(function(){
    var elapsedTime = Date.now() - startTime;
    // Additional code to calculate hour, minute, second, milisecond here
}, 10);

这个问题的答案有帮助吗:setTimeout的间隔是最小的,你必须考虑函数在两次调用之间运行的时间,这都是累积的。是的,谢谢。事实上,我刚刚重新检查过,很抱歉这么快就得出了结论。我知道问题出在哪里,但我不知道如何解决它,在我的计时器的上下文中。这个问题的答案是否有帮助:setTimeout的间隔是最小的,并且您必须考虑函数在调用之间运行的时间,这都是累积的。是的,谢谢,实际上,我刚刚检查过,我很抱歉这么快就下结论了。我知道问题出在哪里,但我不知道如何解决它,在我的计时器的上下文中。