36,662
stars
+1
2,076
forks
200
watchers
2,004
prs
2,067
issues
127
releases
264
discussions
README
🔥️ NEW: date-fns v4.0 with first-class time zone support is out!
date-fns provides the most comprehensive, yet simple and consistent toolset for manipulating JavaScript dates in a browser & Node.js
👉 Documentation
👉 Blog
It's like Lodash for dates
- It has 200+ functions for all occasions.
- Modular: Pick what you need. Works with webpack, Browserify, or Rollup and also supports tree-shaking.
- Native dates: Uses existing native type. It doesn't extend core objects for safety's sake.
- Immutable & Pure: Built using pure functions and always returns a new date instance.
- TypeScript: The library is 100% TypeScript with brand-new handcrafted types.
- I18n: Dozens of locales. Include only what you need.
- and many more benefits
---
Sponsored by:
---
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
// ]
The library is available as an npm package.
To install the package run:
bash
npm install date-fns --save
Docs
See date-fns.org for more details, API,
and other docs.
License
MIT © Sasha KossTop issues
#571addMonths is coming up 1 hour short32 comments · 2017-09-26#3806Typescript/Jest performance issues31 comments · 2024-05-17#1057Finnish translation improvement26 comments · 2019-01-28#2151formatISO doesn't use UTC (Z) timezone23 comments · 2021-01-12#1946Localized format needed for day and month (PPP without year)17 comments · 2020-09-15#1569no strict parse17 comments · 2019-12-13#1218Format relative without time17 comments · 2019-06-24#942parse('2-12-12', 'yyyy-MM-dd', new Date()) returns a valid date17 comments · 2018-10-19
Discussions
#4354A js/ts time provider compatible with native Date (and therefore date-fns)0 comments · 2026-10-06#4200v5.0.0-alpha.00 comments · 2026-05-29#4192Breaking changes in minor version?1 comments · 2026-05-20#4172Do you still accept PRs to V3?0 comments · 2026-03-19#4171Open-source marketing automation — email sequences + analytics (React + Supabase)0 comments · 2026-03-17#4169OpenHive — Open-source Slack alternative using date-fns for message timestamps0 comments · 2026-03-14#4167Reply1 comments · 2026-03-11#4151Proposal: Migrate documentation to VitePress1 comments · 2026-01-30
Latest release
v4.4.0 v4.4.0 2026-05-29This release revisits the approach to CDN usage and introduces a new package, @date-fns/cdn and deprecates the date-fns CDN scripts. It allowed reducing the zipped package size from 5.83 MB down to 3.96 MB without introducing any breaking changes. In v5.0.0-alpha.0 where CDN scripts are completely removed from date-fns the change is more significant and brings the zipped package size down to 2.89 MB. It is just the first step in optimizing the package size. Expect further size reduction in the future v4 and v5 versions. Changed - DEPRECATED: The date-fns CDN scripts are now deprec