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

如何让PST时间显示为完整24小时制格式(00:00:00)?

解决PST时间小时数前导零缺失问题

你的脚本已经能正常显示PST时间,但0-9点的小时数缺少前导零,且你尝试的补零函数未生效——核心问题是没调用该函数处理小时变量h,另外还要注意UTC-8可能出现负数小时的情况,以下是修正后的完整方案:

修正后的完整代码

function startTime() {
  const today = new Date();
  let h = today.getUTCHours() - 8;
  let m = today.getUTCMinutes();
  let s = today.getUTCSeconds();
  
  // 处理UTC小时小于8时出现的负数,转成24小时制的正确数值
  h = (h + 24) % 24;
  // 对小时、分钟、秒统一调用补零函数
  h = checkTime(h);
  m = checkTime(m);
  s = checkTime(s);
  
  document.getElementById('txt').innerHTML = `${h}:${m}:${s}`;
  setTimeout(startTime, 1000);
}

function checkTime(num) {
  // 数值小于10时自动补前导零
  return num < 10 ? `0${num}` : num;
}

关键修正点

  1. 补全小时的补零处理:之前只对分钟和秒调用了checkTime,漏掉了小时变量h,添加h = checkTime(h)后,0-9点的小时会自动转为00-09格式。
  2. 修复负数小时问题:当UTC时间在00:00到07:59之间时,UTC-8会得到负数(比如UTC 0点时h=-8),通过(h + 24) % 24可将其转换为前一天的16点到23点,避免出现-08:00:00这类错误格式。
  3. 优化字符串拼接:用ES6模板字符串替代加号拼接,代码更简洁易读。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 02:50:42