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

date-fns的MMM dd, yyyy格式在Firefox失效,Chrome正常问题求助

解决date-fns format方法在Firefox中抛出"Invalid time value"异常的问题

问题原因

当调用format(new Date(), 'MMM dd, yyyy')时,Firefox抛出异常但Chrome正常,核心差异在于:

  • MMM是本地化月份缩写,date-fns处理该格式时依赖浏览器或显式传入的locale配置。
  • Chrome默认的locale逻辑能自动适配MMM格式解析,但Firefox的默认locale设置或date-fns的隐式locale加载逻辑存在兼容性问题,导致toDate无法生成有效Date对象,触发isValid校验失败。
  • 而yyyy-mm-dd这类纯数字格式不涉及本地化文本解析,因此在各浏览器中都能正常工作。

解决方案

1. 显式指定locale

调用format时传入明确的locale参数,确保月份缩写能被正确识别,示例如下:

import { format } from 'date-fns';
import { enUS } from 'date-fns/locale';

// 传入英文locale适配MMM格式
format(new Date(), 'MMM dd, yyyy', { locale: enUS });

2. 检查Firefox语言设置

确认Firefox的浏览器默认语言是否包含支持MMM格式的语言(如英语),非英语默认语言可能导致date-fns无法解析英文月份缩写。

3. 改用非本地化格式(临时方案)

如果不需要本地化月份缩写,可将格式改为数字月份的MM,避免依赖locale:

format(new Date(), 'MM dd, yyyy');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:25:20