Day.js
体积 2kB 的 JavaScript 日期工具库
当需要在浏览器或 Node.js 中解析、验证、操作和显示日期,又不想引入 Moment.js 那 67KB 的体积时,Day.js 以 2KB(gzipped)的体积提供兼容 Moment.js 的 API,并支持插件按需加载与 100+ 语言环境。
| 收费 | 开源免费 |
|---|---|
| 平台 | 浏览器 + Node.js |
| 中文 | 官方中文文档(day.nodejs.cn) |
| 用途 | JavaScript 日期解析、格式化、操作、显示 |
Day.js 体积仅 2KB,所有 API 操作都返回新的 Dayjs 实例(不可变设计),避免因直接修改原对象引发的 bug。它采用插件化架构,国际化、时区、高级格式化等功能均以插件形式按需引入,不占用基础包体积。
Day.js 被设计为在浏览器和 Node.js 中均可运行,同一份代码在两个环境下通过单元测试。浏览器支持 IE9+、Chrome、Firefox、Safari、Edge;Node.js 要求 8.0+。安装方式包括 npm、yarn、pnpm 以及 CDN 引入。
Day.js 覆盖日期处理的常见场景:解析多种格式(ISO 8601、Unix 时间戳、数组、对象等),格式化输出(YYYY-MM-DD HH:mm:ss 等),日期加减(add/subtract),时间差计算(diff),以及查询(isBefore、isAfter、isLeapYear 等)。
Day.js 是 Moment.js 的轻量替代,API 设计高度兼容,但体积仅为后者的 3%。Moment.js 已进入维护状态(官方建议新项目使用其他库),Day.js 则保持活跃维护(最新 v1.11.18,GitHub Stars 48.2k+)。Day.js 的不可变设计和插件化架构使其更适合现代前端构建。
Q1:Day.js 如何加载中文语言包?
A1:在代码中引入 'dayjs/locale/zh-cn',然后调用 dayjs.locale('zh-cn') 即可全局切换为中文。局部切换可通过 .locale('zh-cn') 方法在单个实例上生效。
Q2:Day.js 的插件必须全部加载吗?
A2:不需要。插件按需加载,例如使用相对时间功能时,只需引入 'dayjs/plugin/relativeTime' 并调用 dayjs.extend(relativeTime)。未使用的插件不会打包进最终构建。
Q3:Day.js 在 IE8 上能用吗?
A3:官方 CI 覆盖了 IE8/9/10/11,但 IE8 需注意部分插件可能依赖较新的 ES 特性。基础解析和格式化功能在 IE8 上经过测试可用。
更多同类工具与网站,可在前端库分类继续挑选。
信息核实于 2026年7月,具体以官网为准。
评论
暂无评论