JavaScript 日期处理类库 Moment.js 进入维护状态

2020年09月16日

Moment 团队宣布 Moment.js 已进入维护状态,后续不会再为其增加新功能,并建议新项目不要使用 Moment.js,推荐使用更现代的库或 JavaScript 目前的实验性提案 Temporal

根据官方提供的数据,Moment.js 已被成功用于数百万个项目,截至2020年9月,Moment.js 每周下载量超过 1200 万。但它毕竟是一个为 JavaScript 生态旧时代而构建的项目,近年来,虽然 Moment.js 有所发展,但其底层设计并没有改变,依旧与 2011 年创建时基本相同。这导致它未能很好适应现代开发,但如果要对它进行改造,工作量也比较大,而且目前已经有了更好的替代方案,所以团队决定让 Moment.js 止步于此。

Moment.js 进入维护状态意味着:

  • 团队不会再为其增加新功能
  • 团队不会将其 API 更改为 immutable
  • 团队不会解决 Tree-shaking 或捆绑包大小的问题
  • 团队不会对其进行任何重大更改(没有大版本 Moment.js 3)
  • 团队可能选择不修复错误或特异性的操作,特别是长期存在的已知问题

Moment 团队表示他们知道许多已存在的项目可能会继续使用 Moment.js,所以

  • 当出现严重的安全问题时,团队会予以解决
  • 在 IANA 时区数据库更新后,团队会为 Moment-Timezone 发布更新

虽然 Moment 团队阻止未来的新项目使用 Moment.js,但如果有一些特殊情况依旧可以继续使用它,例如对浏览器支持有特别要求,因为 Moment.js 支持 IE 8 及更高版本。如果项目中有其他库依赖 Moment.js,并暂时找不到更好的替代方案,团队建议还是继续使用。当然,对于 Moment.js 的长期用户,并且已经非常了解它的 API 和局限性,团队表示不必担心进入维护状态这个问题,可以继续使用它。

Moment 团队推荐的替代方案包括:LuxonDay.jsdate-fns 和 js-Joda。他们还说道,希望未来有一天能够完全不需要 JavaScript 的日期和时间库,而是使用语言本身的功能。所以他们还推荐了尚处于实验性阶段的 Temporal

展开阅读全文
29 收藏
分享
加载中
精彩评论
推荐 Day.js 又小又好用
2020-09-18 11:31
2
举报
前端往后端存日期的时候,直接在数据对象中存 Date 对象,JSON.stringify() 时会自动调用 Date 的 toJSON() 而转化成 ISO 标准时间格式(零时区);后面后端再返回给前端时,前端就可以把它直接传给 Date() 构造函数,时区就是当前时区,再调用 .toLocaleString() 也会转化成用户浏览器设置的语言格式。
2020-09-16 12:18
2
举报
最新评论 (11)
类似jquery慢慢淡出,后面都会推荐javascript自身的实现。
2020-09-18 16:33
0
回复
举报
应该选哪一个备选方案,我很方。
2020-09-17 09:12
0
回复
举报
推荐 Day.js 又小又好用
2020-09-18 11:31
2
回复
举报
js日期的没用过三方库,需要么?
2020-09-17 00:04
0
回复
举报
哪个能自动处理时区的?就是数据源的时区是不确定的,格式化后要显示为当前操作系统时区的时间
2020-09-16 09:52
0
回复
举报
应该都可以吧,只要数据源都带时区,自然就可以转换并格式化成本地时区显示
2020-09-16 10:16
0
回复
举报
前端往后端存日期的时候,直接在数据对象中存 Date 对象,JSON.stringify() 时会自动调用 Date 的 toJSON() 而转化成 ISO 标准时间格式(零时区);后面后端再返回给前端时,前端就可以把它直接传给 Date() 构造函数,时区就是当前时区,再调用 .toLocaleString() 也会转化成用户浏览器设置的语言格式。
2020-09-16 12:18
2
回复
举报
mysql 数据类型 DATE: 3bytes(YYYY-MM-DD) ,DATETIME: 8bytes, TIMESTAMP: 4bytes(最大值2038-1-19 3:14:07),INT: 4bytes 。有时分秒的,INT是比较好的选择,INT unsigned 可以撑到2106-2-7 6:28:15。
2020-09-16 13:48
0
回复
举报
date-fns 吧~

这玩意儿这是一言难尽!
2020-09-16 09:37
0
回复
举报
推荐 dayjs 或者 date-fns 。
2020-09-16 09:25
0
回复
举报
Carbon 好用
2020-09-16 08:40
0
回复
举报
更多评论
11 评论
29 收藏
分享
返回顶部
顶部