You need to enable JavaScript to run this app. 如何在JavaScript中将dMYYYY格式日期字符串转为指定显示格式
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中将dMYYYY格式日期字符串转为指定显示格式

转换方案

你原始的日期字符串是按照「日 + 月 + 四位年」的规则拼接生成的,我们直接基于这个规则反向解析即可,完全不需要修改原有生成逻辑。

实现思路

  1. 所有日期字符串的最后4位固定是年份,直接截取即可
  2. 剩余的前半部分为日和月的拼接内容,利用月份取值范围是1-12的特点拆分:
    • 若前半部分的最后两位数字≤12,则这两位为月份,剩余内容为日期
    • 若前半部分的最后两位数字>12,则最后1位为月份,剩余内容为日期
  3. 把月份数字匹配为对应的英文缩写,按要求格式拼接即可

代码实现

// 月份英文缩写映射表
const monthAbbrs = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];

function convertDateKey(dateStr) {
  // 截取最后四位为年份
  const year = dateStr.slice(-4);
  // 取日+月的拼接部分
  const dayMonthSeg = dateStr.slice(0, -4);

  let month, day;
  const lastTwoChar = dayMonthSeg.slice(-2);
  if (Number(lastTwoChar) <= 12) {
    month = Number(lastTwoChar);
    day = Number(dayMonthSeg.slice(0, -2));
  } else {
    month = Number(dayMonthSeg.slice(-1));
    day = Number(dayMonthSeg.slice(0, -1));
  }

  return `${monthAbbrs[month - 1]}, ${day}, ${year}`;
}

// 测试示例
console.log(convertDateKey('162021')); // 输出:Jun, 1, 2021
console.log(convertDateKey('2182021')); // 输出:Aug, 21, 2021

补充说明

因为你的原始日期都是通过Date对象生成的合法日期,不存在非法的日月取值,所以上述转换逻辑覆盖所有合法场景,准确率100%,直接用这个函数处理需要渲染到折线图的日期字段即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 06:54:00