极简、现代、可靠的日期处理方案

Day.js 是一个极简的 JavaScript 库,其 API 设计与 Moment.js 完全一样。如果你会用 Moment.js,那你已经知道如何使用 Day.js。

Day.js 深度解析

在现代 Web 开发中,日期和时间的处理始终是一个绕不开的话题。长期以来,Moment.js 占据了统治地位,但随着前端工程化对包体积(Bundle Size)的极致追求,Moment.js 庞大的体积和不可变性(Immutability)的缺失逐渐成为了瓶颈。正是在这种背景下,Day.js 应运而生,成为了新一代开发者的首选。

Day.js 是一个轻量级的 JavaScript 时间日期库。它的核心代码仅有 2KB 左右,这意味着它几乎不会对你的网站加载速度产生任何负面影响。尽管体积微小,但它在功能上绝不妥协。Day.js 采用了链式操作(Chaining)的设计模式,使得代码阅读起来非常直观,如 dayjs().startOf('month').add(1, 'day').format('YYYY-MM-DD')

更重要的是,Day.js 坚持“不可变性”。在 Moment.js 中,很多操作会直接修改原始对象,这往往会导致一些难以排查的 Bug。而在 Day.js 中,所有的操作都会返回一个新的 Day.js 实例。这种函数式编程的思想,极大地提高了代码的可维护性和可预测性。此外,它还拥有极其丰富的插件系统,你可以根据实际需求,按需加载如相对时间(RelativeTime)、周年度(WeekOfYear)等高级功能,从而保持核心包的纯净。

核心特点

  • 2KB 超微体积
  • 完美的 Moment.js API 兼容
  • 强悍的不可变性设计
  • 灵活的插件扩展机制
  • 全球化多语言支持

安装要求

Day.js 几乎可以在任何运行 JavaScript 的环境中使用:

  • Node.js 10.0.0 及以上版本
  • Windows / macOS / Linux 均无特殊依赖
  • 支持通过 npm, yarn 或 pnpm 安装
  • 支持 CDN 直接引入

兼容性 & 费用

Day.js 旨在适配所有主流浏览器:

Chrome, Firefox, Safari, Edge, IE11 (含插件)

完全免费 (MIT 协议)

最近新闻

2024-05-20

Day.js 1.11.11 版本发布

修复了在某些特定时区下的夏令时解析偏差,进一步提升了库的稳定性。

2024-03-15

生态系统突破

在 GitHub 上的 Star 数正式突破 45k,成为最受欢迎的日期库之一。

2024-01-10

TypeScript 支持增强

优化了插件的类型定义,为 TS 开发者提供更好的 IDE 智能补全支持。