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

Moment.js在Safari中返回Invalid Date,其他浏览器正常,求解决方案

解决思路
  • 核心问题:Safari原生Date对象不支持MM/DD/YYYY hh:mm:ss.SSS A这种带12小时制标识的格式自动解析,而moment默认会调用浏览器原生Date来解析未指定格式的字符串,导致跨浏览器表现不一致。

  • 最可靠的解决方案:明确指定解析格式
    直接给moment传入第二个参数,指定输入日期的格式,让moment自行解析,不再依赖浏览器的原生解析能力,这样就能在所有浏览器中得到一致结果:

    moment('01/01/2023 11:44:00.000 AM', 'MM/DD/YYYY hh:mm:ss.SSS A').tz(time_zone, true).format('hh:mm:ss:SS A z')
    
  • 为什么替换空格为T没用?
    你之前尝试的.replace(/ /g,"T")只能把格式改成01/01/2023T11:44:00.000 AM,但这个格式依然不符合ISO标准(ISO格式采用24小时制且不带AM/PM标识),Safari还是无法识别,所以没有效果。

内容的提问来源于stack exchange,提问作者Vladimir Štus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:01:14