如何停止和重置 setInterval 计时器

How do I stop and reset a setInterval timer

如何停止此 setInterval 计时器并将其重置回 00:00?

设置 clearInterval(timer); 可以停止时间,但我不知道如何将时间值重置回 00:00。

这是我所在的位置:

HTML

<span class="timer">
  <label id="minutes">00</label>:<label id="seconds">00</label>
</span>

JS

const minutesLabel = document.getElementById("minutes");
const secondsLabel = document.getElementById("seconds");
let timer = setInterval(setTime, 1000);

function setTime() {
  ++totalSeconds;
  secondsLabel.innerHTML = pad(totalSeconds % 60);
  minutesLabel.innerHTML = pad(parseInt(totalSeconds / 60));
}

function pad(val) {
  let valString = val + "";
  if (valString.length < 2) {
    return "0" + valString;
  } else {
    return valString;
  }
}

stopTimer = () => {
  clearInterval(timer);
  timer = setInterval(setTime, 1000);
};

我在游戏中使用此计时器,因此根据用户状态,我需要能够 startstoprestart 将时间归零。

变量 totalSeconds 记录您的时间。 函数的名称 stopTimer() - 也许应该是 restartTimer - 似乎有点误导,因为你在那里重新启动计时器但基本上只是将 totalSeconds 设置为 0,如:

stopTimer = () => {
  totalSeconds = 0;
  clearInterval(timer);
  timer = setInterval(setTime, 1000);
};

现在发生的事情是你的变量一直在上升,即使你 "reset" 计时器。

只需添加

totalSeconds = 0;

到您的 stopTimer 函数。这会将变量重置为零。