date-fns库的使用

date-fns 日期时间处理库

#resource / javascript #type / howto #status / growing

date-fns 库的使用

现代 JavaScript 日期处理库,模块化、轻量、不可变

中文文档 | 官方文档


安装

bash pnpm add date-fns


核心函数

格式化日期

“javascript import { format, formatDistance, formatRelative } from ‘date-fns’ import { zhCN } from ‘date-fns/locale’

// 基础格式化 format(new Date(), ‘yyyy-MM-dd HH:mm:ss’) // => “2025-12-08 14:30:00”

format(new Date(), ‘yyyy年MM月dd日 EEEE’, { locale: zhCN }) // => “2025年12月08日 星期日” “

相对时间

“javascript // 距离当前时间 formatDistance(new Date(2025, 11, 1), new Date(), { addSuffix: true, locale: zhCN }) // => “7天前”

// 相对日期 formatRelative(new Date(2025, 11, 7), new Date(), { locale: zhCN }) // => “昨天 14:30” “


常用格式化符号

符号说明示例
yyyy4位年份2025
MM2位月份12
dd2位日期08
HH24小时制14
mm分钟30
ss00
EEEE星期全称星期日
EEE星期缩写周日

日期计算

“javascript import { addDays, subMonths, differenceInDays, isAfter } from ‘date-fns’

// 加减日期 addDays(new Date(), 7) // 7天后 subMonths(new Date(), 1) // 1个月前

// 计算差值 differenceInDays(endDate, startDate) // 相差天数

// 日期比较 isAfter(date1, date2) // date1 是否在 date2 之后 “


与其他库对比

特性date-fnsMoment.jsDay.js
体积按需引入~300KB~2KB
不可变
Tree-shaking
维护状态活跃停止维护活跃

相关笔记

创建于 2025/7/25 更新于 2026/5/27