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

如何用date-fns将dd-MM-yyyy日期转为yyyyMMdd?解决parseISO报错

问题原因及解决方案

错误点说明

  1. parseISO 函数仅用于解析ISO 8601标准格式的日期字符串(例如 yyyy-MM-dd、yyyyMMdd、yyyy-MM-ddTHH:mm:ss),它不接受自定义格式参数——你传入的第二个参数 'dd-MM-yyyy' 完全无效。
  2. 你的输入日期格式是 dd-MM-yyyy,不符合ISO 8601规范,因此 parseISO 无法识别该字符串,返回无效日期,进而导致后续 format 函数报错。

正确实现方式

基于 date-fns 库

使用支持自定义格式解析的 parse 函数替代 parseISO:

import { parse, format } from 'date-fns';

// 示例输入:date = '25-05-2024'
const result = format(
  parse(date, 'dd-MM-yyyy', new Date()),
  'yyyyMMdd'
);
// 输出:'20240525'

基于 dayjs 库

需要先引入自定义解析插件,再完成格式转换:

import dayjs from 'dayjs';
import customParseFormat from 'dayjs/plugin/customParseFormat';

dayjs.extend(customParseFormat);

// 示例输入:date = '25-05-2024'
const result = dayjs(date, 'dd-MM-yyyy').format('yyyyMMdd');
// 输出:'20240525'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 18:13:12