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

JavaScript中将数字日期字符串转换为易读日期格式的实现方案

字符串日期格式转换实现方案

你原本的月份映射拼接思路是可行的,下面提供两种更简洁、易维护的实现方式:

方案1:原生Intl.DateTimeFormat API(优先推荐)

不需要手动维护月份映射规则,原生支持多区域格式配置,容错性和可扩展性更强。

function formatIsoDateStr(dateStr) {
  const date = new Date(dateStr);
  return new Intl.DateTimeFormat('en-US', {
    year: 'numeric',
    month: 'long',
    day: 'numeric'
  }).format(date);
}

// 调用示例
formatIsoDateStr('2021-08-13') // 返回:August 13, 2021

特性说明:

  • 符合ISO 8601标准的YYYY-MM-DD格式字符串,所有现代浏览器、Node.js环境都可以直接传入Date构造函数正常解析,无需手动拆分字段
  • 后续如果需要调整输出格式,只需要修改配置项即可,比如要显示星期、切换为中文格式,只需要调整区域码和配置参数即可,无需修改逻辑代码

方案2:数组映射拼接(适合低版本环境、无Date解析依赖场景)

如果你的运行环境不支持IntlAPI,或者不想依赖Date对象的解析逻辑,可以用数组索引映射月份的方式简化你的原有思路,比写对象映射、条件判断更简洁:

const EN_MONTHS = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];

function formatIsoDateStrManual(dateStr) {
  const [year, monthNum, day] = dateStr.split('-').map(Number);
  return `${EN_MONTHS[monthNum - 1]} ${day}, ${year}`;
}

// 调用示例
formatIsoDateStrManual('2021-08-13') // 返回:August 13, 2021

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:15:00