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

JavaScript中检测多格式日期并统一转为YYYY-MM-DD的方法

统一转换多种日期格式为YYYY-MM-DD的解决方案

使用Day.js实现自动检测格式转换

Day.js默认无法自动识别非标准日期格式,需要借助customParseFormat插件,通过遍历所有可能的格式来尝试解析,直到找到匹配的有效格式。

实现步骤

  • 引入Day.js及customParseFormat插件
  • 定义数据库中存在的四种日期格式列表
  • 遍历格式列表,用严格模式尝试解析输入日期,成功后转换为目标格式

代码示例

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

dayjs.extend(customParseFormat);

function convertToStandardDate(dateStr) {
  const validFormats = ['DD/MM/YYYY', 'DD-MM-YYYY', 'YYYY/MM/DD', 'YYYY-MM-DD'];
  
  for (const format of validFormats) {
    const parsedDate = dayjs(dateStr, format, true);
    if (parsedDate.isValid()) {
      return parsedDate.format('YYYY-MM-DD');
    }
  }
  
  // 格式匹配失败时返回原字符串,也可根据需求抛出错误
  return dateStr;
}

// 测试
console.log(convertToStandardDate('14/05/1993')); // 1993-05-14
console.log(convertToStandardDate('1993-05-14')); // 1993-05-14

使用原生JavaScript实现转换

不依赖第三方库,通过正则表达式匹配不同格式,提取年、月、日信息后重组为目标格式。

实现思路

  • 用两个正则分别匹配DD/MM/YYYY/DD-MM-YYYY和YYYY/MM/DD/YYYY-MM-DD格式
  • 利用正则反向引用确保分隔符统一(避免混合分隔符的无效日期)
  • 提取对应字段后按YYYY-MM-DD格式拼接

代码示例

function convertToStandardDate(dateStr) {
  // 匹配DD/MM/YYYY或DD-MM-YYYY,确保分隔符一致
  const ddMmRegex = /^(\d{2})([\/-])(\d{2})\2(\d{4})$/;
  // 匹配YYYY/MM/DD或YYYY-MM-DD,确保分隔符一致
  const yyyyMmRegex = /^(\d{4})([\/-])(\d{2})\2(\d{2})$/;
  
  let matchResult = dateStr.match(ddMmRegex);
  if (matchResult) {
    const [, day, , month, year] = matchResult;
    return `${year}-${month}-${day}`;
  }
  
  matchResult = dateStr.match(yyyyMmRegex);
  if (matchResult) {
    const [, year, , month, day] = matchResult;
    return `${year}-${month}-${day}`;
  }
  
  // 匹配失败返回原字符串
  return dateStr;
}

// 测试
console.log(convertToStandardDate('14-05-1993')); // 1993-05-14
console.log(convertToStandardDate('1993/05/14')); // 1993-05-14

额外优化

如果需要处理单数字的月/日(比如5/1/2020),可以在提取字段后用padStart(2, '0')补零,确保格式统一:

// 示例:补零处理
return `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 17:40:41