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

为什么moment.js调用moment("24:33", "HH:mm")时返回Invalid Date?

问题原因
  • Moment默认使用严格解析规则,HH格式符对应的合法小时取值范围是0~23,你输入的24:33小时值超出范围,会直接被判定为非法时间,后续转UTC、格式化的操作都会返回Invalid Date,自然得不到预期的转换结果。
修复方案

开启Moment的宽松解析模式即可,解析时传入第三个参数为true,此时Moment会自动对超出范围的时间做合法偏移处理:

// 开启宽松解析后执行
moment("24:33", "HH:mm", true).utc().format('HH:mm')

你本地时区比UTC早5小时的情况下,24:33会被识别为当天时间加24小时33分,也就是次日的00:33,减去5小时的时差后自然返回你预期的19:33。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:27:02