总结
- Native Date 无法直接解析自定义格式的时间字符串,且容易引入时区问题。不推荐。
- Moment.js 包体积过大,且时间对象存在 mutable 问题,源代码也早已停止维护。不推荐。
- Day.js 克服了 moment.js 的缺陷,且 api 与 moment.js 高度吻合,从 moment.js 迁移成本低。但是部分功能需要通过插件引入。推荐在不涉及 UTC 时间的情况下使用。
- Date-fns 同样克服了 moment.js 的缺陷,并支持 tree-shaking,单独使用某些功时,引入的包体积甚至小于 day.js。但需要从目标目录导入所需的工具函数,上手难度大。在引入了多种工具函数或涉及解析时间字符串时,还会导致包体积过大。推荐存在轻度需求时使用。
https://github.com/you-dont-need/You-Dont-Need-Momentjs/blob/master/README.md
这里有对下面几种时间处理 API 方案的详细比较
这篇文章更值得一读
出自: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date