javascript - 将数字日期转换为文本格式的最佳方法
问题描述
我正在从外部 API 检索数据,我得到的日期信息是格式,在没有年份的情况下'2018-05-06'
将其转换为的最佳方法是什么?'May 6'
解决方案
你有几个选择,每个都有优点和缺点。
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 几乎相同的优点,除了语言处理
- 没有外部依赖
缺点
- 如果您不需要验证并且对性能非常敏感,则可能会矫枉过正
- 需要存储自己的月份表示有点尴尬
手动解析
见米海的回答
优点
- 可以是高性能
缺点
- 代码可能会非常具体地满足这个要求,如果事情变得更复杂,就不容易更改
- 没有日期验证
推荐阅读
- java - 如何注入 Set
在 Setter 注入中使用基于注释的配置? - python - 遍历数据框中的所有行并根据比较其他列生成新列
- postgresql - Postgres sink 连接器在 DLQ 中放置消息
- vulkan - 为什么 pCode 类型是 const uint32_t*?( VkShaderModuleCreateInfo 中的 pCode )?
- api - 如何按 Etsy API 中的字段过滤
- web-scraping - 使用 UrlFetchApp 进行网页抓取
- angular - 无法使用 Playground 和 Preview 应用程序在移动设备上运行 NativeScript 应用程序,也无法在通过 USB 连接的移动设备上运行
- javascript - Django - 将列表作为onlick 参数传递| 它有效,但有错误
- angular10 - Angular10 ng-class 与类标签为什么不同?
- c# - iText7 Image Quality Optimizer not working as document