1. 4
总结
  • Native Date 无法直接解析自定义格式的时间字符串,且容易引入时区问题。不推荐
  • Moment.js 包体积过大,且时间对象存在 mutable 问题,源代码也早已停止维护。不推荐
  • Day.js 克服了 moment.js 的缺陷,且 api 与 moment.js 高度吻合,从 moment.js 迁移成本低。但是部分功能需要通过插件引入。推荐在不涉及 UTC 时间的情况下使用
  • Date-fns 同样克服了 moment.js 的缺陷,并支持 tree-shaking,单独使用某些功时,引入的包体积甚至小于 day.js。但需要从目标目录导入所需的工具函数,上手难度大。在引入了多种工具函数或涉及解析时间字符串时,还会导致包体积过大。推荐存在轻度需求时使用。
  1. 2
    1. 2

      这篇文章更值得一读

    2. 2
      • java的日期:难用、够用、规则还算清晰
      • js的日期包:难用、不够用、规则还模糊

      脱离一线有段时间了,偶尔用js写些小块处理程序时,用日期包都好像做一件有随机性的事的感觉。。

      1. 1

        由于浏览器之间的差异与不一致性,强烈不推荐使用 Date 构造函数来解析日期字符串 (或使用与其等价的 Date.parse)。对 RFC 2822 格式的日期仅有约定俗成的支持。对 ISO 8601 格式的支持中,仅有日期的串 (例如 “1970-01-01”) 会被处理为 UTC 而不是本地时间,与其他格式的串的处理不同。

        出自: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date