首页 > 解决方案 > 将数字日期转换为文本格式的最佳方法

问题描述

我正在从外部 API 检索数据,我得到的日期信息是格式,在没有年份的情况下'2018-05-06'将其转换为的最佳方法是什么?'May 6'

标签: javascript

解决方案


你有几个选择,每个都有优点和缺点。

Moment.js

这是一个非常简单的解决方案,如果您已经拥有依赖项,那么它是一个很好的解决方案。

const date = moment('2018-05-06').format('MMMM D');

优点

  • 简单的
  • 干净的
  • 易于阅读
  • 让您知道日期是否无效(如2018-05-32
  • 如果您的格式需要更改,它有一个复杂的格式化程序
  • 易于支持其他语言/地区

缺点

  • 可能不必要的额外依赖
  • 如果您不想验证日期,那可能是矫枉过正

JavascriptDate

const MONTHS = ['January', 'February', ...];
const date = new Date('2018-05-06');
const myString = MONTHS[date.getMonth()] + ' ' + date.getDate();

优点

  • 与 Moment.js 几乎相同的优点,除了语言处理
  • 没有外部依赖

缺点

  • 如果您不需要验证并且对性能非常敏感,则可能会矫枉过正
  • 需要存储自己的月份表示有点尴尬

手动解析

见米海的回答

优点

  • 可以是高性能

缺点

  • 代码可能会非常具体地满足这个要求,如果事情变得更复杂,就不容易更改
  • 没有日期验证

推荐阅读