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

如何为JavaScript实时倒计时的天时分秒补前导0实现双位数显示

解决方法

你只需要新增一个补前导零的处理逻辑,把计算得到的天、时、分、秒数值处理后再赋值到DOM即可,有两种常见实现方案:

方案1:自定义补零函数(兼容性最优,支持所有老旧浏览器)

先定义通用补零方法,数值小于10时自动在前面拼接0:

function padZero(num) {
  return num < 10 ? '0' + num : num
}

然后修改原代码中给四个字段赋值的逻辑,把计算结果传入该函数处理即可。

方案2:使用ES6内置padStart方法

将数值转为字符串后调用padStart(2, '0'),即可固定为双位数,不足位补前导0。


修改后完整JS代码

(function () {
  const second = 1000,
        minute = second * 60,
        hour = minute * 60,
        day = hour * 24;
  // 补零函数
  function padZero(num) {
    return num < 10 ? '0' + num : num
  }

  let event = "July 10, 2021 01:00:00",
      countDown = new Date(event).getTime(),
      x = setInterval(function() {    

        let now = new Date().getTime(),
            distance = countDown - now;

          document.getElementById("days").innerText = padZero(Math.floor(distance / (day))),
          document.getElementById("hours").innerText = padZero(Math.floor((distance % (day)) / (hour))),
          document.getElementById("minutes").innerText = padZero(Math.floor((distance % (hour)) / (minute))),
          document.getElementById("seconds").innerText = padZero(Math.floor((distance % (minute)) / second));

        // 倒计时结束逻辑
        if (distance < 0) {
          let headline = document.getElementById("headline"),
              countdown = document.getElementById("countdown"),
              content = document.getElementById("content");

         
          countdown.style.display = "none";
          content.style.display = "block";

          clearInterval(x);
        }
      }, 0)
  }());

如果偏好使用padStart写法,赋值部分可以直接改成:

document.getElementById("days").innerText = String(Math.floor(distance / (day))).padStart(2, '0')

其余三个字段同理修改即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 15:54:03