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

使用moment.js将UTC小时时间转换为本地时间时返回原值问题求助

Moment UTC小时转本地小时失败问题排查

问题根因

你当前代码里的moment(selectedHour, "hh")默认会将传入的小时值识别为本地时区的时间,而非你预期的UTC时间,后续调用.local()不会触发任何时区转换,因此输出结果和原值一致。

修复方案

需要先通过moment.utc()方法指定输入的小时属于UTC时区,再转换为本地时间即可:

  • 12小时制输出(和你原代码的格式要求对齐)
const selectedHour = "1";
const result = moment.utc(selectedHour, "hh").local().format('hh');
  • 24小时制输出(如果需要适配24小时计时场景,替换格式符为HH即可)
const selectedHour = "1";
const result = moment.utc(selectedHour, "HH").local().format('HH');

补充说明

如果需要同时输出上午/下午标识,可以在格式化参数中加入A,示例:

// 输出示例:09 AM 、 10 PM
const result = moment.utc(selectedHour, "HH").local().format('hh A');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:36:02