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

使用Moment.js解析泰语日期格式返回Invalid Date的求助

解决Moment.js解析泰语日期返回Invalid Date的问题

修正后的代码

// 确保已加载泰语区域包
import 'moment/locale/th'; // 或在HTML中引入对应的locale文件

const dateStr = "วันศุกร์ที่ 30 มิถุนายน พ.ศ. 2566";
const formatStr = "วันddddที่ d MMMM พ.ศ. yyyy";
const someday = moment(dateStr, formatStr, "th");
console.log(someday.isValid()); // 应返回true
console.log(someday.format()); // 输出对应的公历日期,比如"2023-06-30T00:00:00+07:00"

问题分析

  • 星期格式不匹配:原字符串中星期前缀带有"วัน"(泰语"日/天"),而Moment.js泰语区域的dddd仅对应纯星期名(如"ศุกร์"),因此格式字符串需要补充วัน前缀,写成วันdddd才能匹配"วันศุกร์"。
  • 纪元标识与年份格式错误:原字符串中的"พ.ศ."是泰语佛历的标识,格式字符串需要直接包含该文本,同时用yyyy匹配四位数的佛历年份(Moment.js在泰语区域下会自动处理佛历与公历的转换)。
  • 未加载泰语区域包:如果未引入Moment.js的泰语本地化文件,库无法识别泰语的月份、星期名称,会导致解析失败,因此必须确保加载了moment/locale/th。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:53:19