You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS实现时钟下一分钟展示时分钟显示60而非归0如何解决

问题原因

你当前的代码仅对分钟变量做了自增操作,没有处理分钟到60后的进位逻辑,所以会出现显示60分钟的异常,必须等到下一秒获取新的Date对象时,小时数才会更新。

解决方案

优先推荐使用Date对象的原生时间处理方法,不需要手动写边界判断逻辑,原生支持自动处理分钟、小时、跨天的进位:

function getClockTime_2() {
  let date = new Date();
  // setMinutes原生处理所有进位逻辑,不会出现60分钟的异常
  date.setMinutes(date.getMinutes() + 1);

  let hr = date.getHours();
  let min = date.getMinutes();

  hr = ("0" + hr).slice(-2);
  min = ("0" + min).slice(-2);
  
  let clock24 = document.getElementById("clockDiv2");
  clock24.innerHTML = `${hr}:${min}:00`;
}
setInterval(getClockTime_2, 1000);

如果你想手动处理进位,也可以补充边界判断逻辑,代码如下:

function getClockTime_2() {
  let date = new Date();

  let hr = date.getHours();
  let min = date.getMinutes();
  min++
  // 补充分钟进位逻辑
  if (min >= 60) {
    min = 0;
    hr++;
    // 补充小时跨天进位逻辑
    if (hr >= 24) {
      hr = 0;
    }
  }

  hr = ("0" + hr).slice(-2);
  min = ("0" + min).slice(-2);
  
  let clock24 = document.getElementById("clockDiv2");
  clock24.innerHTML = `${hr}:${min}:00`;
}
setInterval(getClockTime_2, 1000);

内容的提问来源于stack exchange,提问作者Kontractor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 19:18:01