Javascript 快进定时器

Javascript 快进定时器,javascript,timer,setinterval,Javascript,Timer,Setinterval,我在快进计时器方面遇到了问题。这是一个非常基本的体育场。我有一个加数字的间隔。像这样: setInterval(function () { //+1 second //Format output to 00:00 //Handle minute update }, 1000); 这很好用。计时器以正常速度运行。我想做的是快速转发这个计时器。我想要一个计时分钟,以1秒为单位。我试过: setInterval(function () { //+1 second

我在快进计时器方面遇到了问题。这是一个非常基本的体育场。我有一个加数字的间隔。像这样:

setInterval(function () {
    //+1 second
    //Format output to 00:00
    //Handle minute update
}, 1000);
这很好用。计时器以正常速度运行。我想做的是快速转发这个计时器。我想要一个计时分钟,以1秒为单位。我试过:

setInterval(function () {
    //+1 second
    //Format output to 00:00
    //Handle minute update
}, 15);
这有时有效,有时无效。有时它会在01:02而不是01:00停止。也许是我缺乏数学知识,但我不知道。你会怎么做?我将每“计时器分钟”停止并启动计时器,因此间隔正确是很重要的

编辑 下面是我希望它如何工作的一些细节:

编辑2 也许我应该在停止计时器时调整时间

编辑3
看起来15毫秒在大多数情况下都有效。但是有些东西使ut不可靠,我认为最好的方法就是调整时间。

我认为你应该做的是将间隔存储在一个变量中,以便清除它,然后以不同的延迟重新开始

var delay = 1000; // JavaScript uses milliseconds, so 1000 = 1 second
var theTimer  = '';

function startTimer(){
  theTimer = setInterval(function () {
     // Do awesome stuff here
  }, delay);
}

startTimer();
现在,如果要更改间隔或快进计时器,只需清除当前的
setInterval
,然后重新定义它-

clearInterval(theTimer); // stop and clear the current timer
delay = 500; // Crank it up to twice the speed! 0.5 seconds!
startTimer(); // start a new setInterval();

函数myTimer(){
这个.startTime=0;
这个。有效期=0;
此.timePassed=0;
这个乘数=1;
this.outputElement=null;
this.start=函数(){
clearInterval(此为有效期);
此.timePassed=0;
this.outputElement=document.getElementById(“输出”);
this.startTime=新日期();
var me=这个;
this.intervalID=setInterval(函数(){
更新(我);
},100);
}
this.toTwoDigit=函数(num){

如果(numOk,那么我将自己回答这个问题。我认为我不够清楚。当我启动计时器时,超时同时开始,一秒钟后计时器停止。这就是它出错的地方,计时器停止时并不总是显示01:00

因此,最终的解决方案是每次停止时将秒数设置为00,因为这一切发生得太快了,你不会注意到

setTimeout(function () {
  clearInterval(interval);
  $('.clock').html(rMin.slice(-2) + ':00');
}, 1000);
检查我的最新小提琴:

15毫秒的间隔真的很短……你确定要这么短吗?呵呵,我知道它很短,但它很好,因为你可以看到它是如何“快速转发”的.我的想法是这样的1000/60=16.666。但是当我把它作为时间间隔时,它太快了,所以我选择了15。当然。我存储了时间间隔,并且我有不同的停止、启动和快进功能。你的代码只会使它快一倍。我希望我的计时器在一秒钟内从0变为60。我还希望显示大多数se康兹,就像曲棍球钟在最后一分钟,如果你知道我的意思的话。你说:“有时有效,有时无效。有时它在01:02而不是01:00停止”但是在你的代码中,你在哪里停止计时器?我用timercode更新了我的答案,显示了如何实现它,更改了add time值。如果你需要在一分钟过去后提出一个,那么我也可以在那里实现它。
setTimeout(function () {
  clearInterval(interval);
  $('.clock').html(rMin.slice(-2) + ':00');
}, 1000);