date-fns:JavaScript 日期处理的实用工具库
·
date-fns:JavaScript 日期处理的实用工具库
date-fns 是一个 JavaScript 日期处理工具库,目前在 GitHub 上获得了 36,576 个 Star。

前端开发中日期处理是高频需求。格式化、比较、加减运算、时区转换,每个项目都会用到。date-fns 提供了 200 多个函数,覆盖了绝大部分日期操作场景。

核心特性
- 模块化:按需引入,配合 webpack、Rollup 等打包工具支持 tree-shaking
- 原生 Date:直接使用 JavaScript 原生 Date 对象,不扩展核心对象
- 纯函数:所有函数都是纯函数,每次调用返回新的 Date 实例
- TypeScript:100% TypeScript 编写,类型定义完整
- 国际化:内置数十种语言的本地化支持,按需加载即可
有人把 date-fns 比作日期领域的 Lodash,这个说法比较贴切。
基本用法
安装:
npm install date-fns --save
格式化日期:
import { format } from "date-fns";
format(new Date(2014, 1, 11), "yyyy-MM-dd");
//=> '2014-02-11'
日期排序:
import { compareAsc } from "date-fns";
const dates = [
new Date(1995, 6, 2),
new Date(1987, 1, 11),
new Date(1989, 6, 10),
];
dates.sort(compareAsc);
v4.0 更新
date-fns 近期发布了 v4.0,新增原生时区支持。之前处理时区需要依赖第三方库,现在可以在函数中直接指定时区参数,减少了额外的依赖。
与 Moment.js 的对比
Moment.js 是早期 JavaScript 日期处理的主流方案,但不可变性问题和包体积一直被开发者吐槽。date-fns 采用函数式设计,每个操作独立,打包后体积可控。新项目可以直接选用,老项目也能逐步迁移。
date-fns 适合需要处理日期逻辑但不想引入重量级依赖的场景。200 多个函数覆盖了日常开发中的常见需求,模块化设计在打包体积上也比较友好。
需要处理日期逻辑但不想引入重量级依赖的场景。200 多个函数覆盖了日常开发中的常见需求,模块化设计在打包体积上也比较友好。
更多推荐

所有评论(0)