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

如何修改w3schools倒计时代码实现按规则显示计时启动后已过时间

正计时功能实现方案

核心修改点

  • 将原来的倒计时结束时间变量替换为计时启动的初始时间戳,不需要额外加时长
  • 已过时间计算逻辑改为 当前时间戳 - 初始启动时间戳,替换原代码中的错误加法逻辑
  • 新增分段显示规则判断:仅当对应时间单位数值大于0,或存在更高层级的时间单位时才展示该单位,符合需求
  • 移除原倒计时的过期停止逻辑,正计时默认持续运行,如有停止需求可自行添加触发条件

完整可运行代码

<!-- 正计时显示容器 -->
<p id="demo"></p>

<script>
// 记录计时启动的初始时间戳
var startTime = new Date().getTime();
var timer = setInterval(function() {
  var now = new Date().getTime();
  // 计算已过的毫秒数
  var passedTime = now - startTime;

  // 计算各时间单位数值
  var days = Math.floor(passedTime / (1000 * 60 * 60 * 24));
  var hours = Math.floor((passedTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((passedTime % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((passedTime % (1000 * 60)) / 1000);

  // 按规则拼接显示内容
  var displayText = '';
  if (days > 0) displayText += days + 'd ';
  if (hours > 0 || days > 0) displayText += hours + 'h ';
  if (minutes > 0 || hours > 0 || days > 0) displayText += minutes + 'm ';
  displayText += seconds + 's';

  document.getElementById("demo").innerHTML = displayText;
}, 1000);
</script>

显示效果说明

  • 0~59秒:仅展示秒数,例:3s、59s
  • 60秒~3599秒:展示分钟+秒,例:1m 0s、59m 59s
  • 3600秒~86399秒:展示小时+分钟+秒,例:1h 0m 5s、23h 59m 59s
  • 24小时及以上:展示天+小时+分钟+秒,例:1d 2h 3m 4s

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:45:04