文章目录
- [JavaScript日期处理工具date-fns,累计36.5k Star](#JavaScript日期处理工具date-fns,累计36.5k Star)
JavaScript日期处理工具date-fns,累计36.5k Star
date-fns是一款JavaScript日期处理工具库,GitHub仓库star数为36562,项目地址为https://github.com/date-fns/date-fns。

date-fns提供全面且简单一致的工具集,可在浏览器与Node.js环境中操作日期。目前已发布v4.0版本,新增一等时区支持。
该库类似日期领域的Lodash,包含200多个功能函数,覆盖多数日期处理场景。
模块化设计支持按需引入,可配合webpack、Browserify、Rollup等构建工具使用,同时支持tree-shaking减少打包体积。
工具库基于原生日期类型实现,不会扩展核心对象,避免潜在冲突。所有函数均为纯函数,操作后返回新的日期实例,不会修改原数据。
完整支持TypeScript,所有类型均为手动编写,类型提示准确。
内置数十种语言的国际化支持,可按需引入对应语言包。

使用示例如下:
js
import { compareAsc, format } from "date-fns";
format(new Date(2014, 1, 11), "yyyy-MM-dd");
//=> '2014-02-11'
const dates = [
new Date(1995, 6, 2),
new Date(1987, 1, 11),
new Date(1989, 6, 10),
];
dates.sort(compareAsc);
//=> [
// Wed Feb 11 1987 00:00:00,
// Mon Jul 10 1989 00:00:00,
// Sun Jul 02 1995 00:00:00
// ]
date-fns的函数设计遵循最小惊讶原则,API命名直观,多数函数见名知意,降低学习成本。常见的日期格式化、日期比较、日期加减、时区转换等操作都有对应的函数实现。
对于需要处理时区的场景,v4.0版本提供了原生的时区支持,无需额外引入第三方库,可直接在函数中指定时区参数完成转换。
在实际项目中,date-fns可用于处理表单中的日期输入、生成报表的时间维度、处理日志中的时间戳、格式化前端展示的日期信息等场景。
相比其他日期处理库,date-fns的模块化设计在打包时可以只引入用到的函数,有效减少最终代码体积,适合对包体积敏感的前端项目。
工具库的测试覆盖度高,所有函数都有对应的测试用例,稳定性有保障。社区活跃度高,issue响应速度快,版本迭代节奏稳定。
date-fns以npm包形式发布,安装命令为:
bash
npm install date-fns --save
官方文档地址为https://date-fns.org/,包含完整API说明与使用示例。项目采用MIT协议,可免费用于商业项目。