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

Next.js React项目中Moment-timezone/Moment解析日期返回Invalid Date求助

问题根因

从你输出的Moment实例属性可以看到_locale字段里的_dayOfMonthOrdinalParse正则匹配的是带「日」的格式,说明当前项目里引入的Moment默认加载了中文 locale。你传入的日期字符串里使用的是英文月份全称December,但格式符MMMM在中文 locale 下仅能匹配中文月份名称(如「十二月」),因此解析失败返回无效日期。
你动态引入的CDN版本Moment默认使用英文 locale,因此相同逻辑可以正常解析。

解决方案

你可以选择以下任意一种方式解决:

  • 解析时单独指定英文 locale,仅影响当前解析逻辑,不会造成全局污染:
const test = moment.utc('December 01, 2021 01:00pm', 'MMMM DD, YYYY hh:mma', 'en')
  • 全局修改Moment默认locale为英文,适合项目不需要中文日期解析的场景:
    在项目入口文件或者当前组件的顶部添加:
import moment from 'moment'
import 'moment/locale/en'
moment.locale('en')
  • 排查项目依赖配置/Next.js 构建配置,移除自动注入的Moment中文locale逻辑,恢复默认英文配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:06:03