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

来源: OSCHINA
编辑:
2020-09-16 08:33:00

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

展开阅读全文
点击加入讨论🔥(12) 发布并加入讨论🔥
本篇精彩评论
推荐 Day.js 又小又好用
2020-09-18 11:31
2
举报
前端往后端存日期的时候,直接在数据对象中存 Date 对象,JSON.stringify() 时会自动调用 Date 的 toJSON() 而转化成 ISO 标准时间格式(零时区);后面后端再返回给前端时,前端就可以把它直接传给 Date() 构造函数,时区就是当前时区,再调用 .toLocaleString() 也会转化成用户浏览器设置的语言格式。
2020-09-16 12:18
2
举报
12 评论
29 收藏
分享
返回顶部
顶部