Javascript 将数字日期转换为文本格式的最佳方法

Javascript 将数字日期转换为文本格式的最佳方法,javascript,Javascript,我正在从外部API检索数据,我得到的日期信息的格式是'2018-05-06',将其转换为'5月6日'而不是年份的最佳方式是什么?您可以创建一个月数组,并使用拆分方法来查找月份和日期 让月份=['1月'、'2月'、'3月'、'4月'、'5月'、'6月'、'7月'、'8月'、'9月'、'10月'、'11月'、'12月'],日期='2018-05-06'; 让[_,月,日]=date.split('-'); log(`${months[month-1]}${+day}`)这里有几个选项,每个选项都有

我正在从外部API检索数据,我得到的日期信息的格式是
'2018-05-06'
,将其转换为
'5月6日'
而不是年份的最佳方式是什么?

您可以创建一个
数组,并使用
拆分
方法来查找月份和日期

让月份=['1月'、'2月'、'3月'、'4月'、'5月'、'6月'、'7月'、'8月'、'9月'、'10月'、'11月'、'12月'],日期='2018-05-06';
让[_,月,日]=date.split('-');

log(`${months[month-1]}${+day}`)这里有几个选项,每个选项都有优点和缺点

矩.js 这是一个非常简单的解决方案,如果你已经有了依赖关系,这是一个很好的解决方案

const date = moment('2018-05-06').format('MMMM D');
赞成的意见
  • 简单的
  • 干净的
  • 易读
  • 让您知道日期是否无效(如
    2018-05-32
  • 如果您的格式需要更改,它有一个复杂的格式化程序
  • 易于支持其他语言/地区
欺骗
  • 可能不必要的额外依赖关系
  • 如果你不想验证日期,那可能会有点过头
Javascript
Date
赞成的意见
  • 除了语言处理之外,与Moment.js的优点几乎相同
  • 没有外部依赖关系
欺骗
  • 如果您不需要验证,并且对性能非常敏感,则可能会有过大的杀伤力
  • 需要存储自己的月份表示有点尴尬
手动解析 见米海的答案

赞成的意见
  • 可以是高性能的
欺骗
  • 代码可能非常特定于此需求,如果事情变得更加复杂,那么就不那么容易更改
  • 无日期验证

如果要将其传递给date类,请使用<代码>新日期(mydate)date.getMonth();date.getDate()此方法效果最佳,不必使用任何依赖项,如momentjs。只需要3行代码,不客气!如果你对其中一个答案感到满意,记得“接受”它。干杯
const MONTHS = ['January', 'February', ...];
const date = new Date('2018-05-06');
const myString = MONTHS[date.getMonth()] + ' ' + date.getDate();