NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #361 most downloaded on npm
Modern JavaScript date utility library
Last release 4 months ago
29 May 2026
Ships unpredictably
gaps range from 2 weeks to 1.7 years
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
209 releases · first in 2014
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fixed a lot of bugs appearing when date is modifying into other time zone (e.g., when adding months and original date is in DST but new date is not).
Fixed a lot of bugs appearing when date is modifying into other time zone (e.g., when adding months and original date is in DST but new date is not).
Prevent instances of Date to lose milliseconds value when passed to.
parse in IE10.
setISOWeek now keeps time from original date.
Internal: reuse getDaysInMonth inside of addMonths.
differenceInDays
getTimeSinceMidnight
format now has new format key aa, which returns a.m./p.m.
as opposed to a that returns am/pm.
Complete UMD package (for Bower and CDN).
Use parse to clean date arguments in all functions.
Use parse to clean date arguments in all functions.
parse now fallbacks to new Date when the argument
is not an ISO formatted date.
Internal: reuse getDaysInMonth inside of setMonth.
addQuarters
addWeeks
endOfQuarter
getDate
getDay
getDaysInMonth
getHours
getISOWeeksInYear
getMilliseconds
getMinutes
getMonth
getSeconds
getYear
isLeapYear
isSameHour
isSameMinute
isSameQuarter
isSameSecond
lastDayOfQuarter
lastDayOfWeek
max
min
setDate
setDay
setHours
setMilliseconds
setMinutes
setSeconds
startOfQuarter
subQuarters
subWeeks
format now returns a.m./p.m. instead of am/pm.
format now returns a.m./p.m. instead of am/pm.
setMonth now sets last day of month if original date was last day
of longer month.
Internal: Fix code style according to ESLint.
Internal: Make tests run through all time zones.
getQuarter
setQuarter
getDayOfYear
setDayOfYear
isPast
addSeconds
subSeconds
startOfSecond
endOfSecond
startOfMinute
endOfMinute
addMilliseconds
subMilliseconds
endOfYear
addYears
subYears
lastDayOfYear
lastDayOfMonth
format now uses parse to avoid time zone bugs.
format now uses parse to avoid time zone bugs.setIsoWeek now sets time to the start of the day.addMonths now correctly behaves with February (see #18).
addMonths now correctly behaves with February
(see #18).format function now behaves correctly with pm/am.
format function now behaves correctly with pm/am.Nothing published for this version
### Added - addMinutes - subMinutes - isEqual - isBefore - isAfter
addMinutes
subMinutes
isEqual
isBefore
isAfter
Incorrect rounding in DDD formatter.
DDD formatter.### Added - isSameYear
isSameYear### Added - isWithinRange
isWithinRange### Added - format - startOfYear
format
startOfYear
### Changed - _Internal_: simplify isWeekend ### Added - isFuture
isWeekendisFuture_Internal_: reuse addDays inside of subDays.
addDays inside of subDays.addMonths
subMonths
setMonth
setYear
### Added - isSameWeek
isSameWeekInconsistent behavior of endOfMonth.
endOfMonth.isFirstDayOfMonth
isLastDayOfMonth
isSameMonth
### Added - addDays - subDays
addDays
subDays
### Added - startOfWeek - endOfWeek - eachDay
startOfWeek
endOfWeek
eachDay
startOfDay now sets milliseconds as well.
startOfDay now sets milliseconds as well.endOfDay
startOfMonth
endOfMonth
### Added - isToday - isWeekend
isToday
isWeekend
[unreleased]: https://github.com/date-fns/date-fns/compare/v2.16.1...HEAD [2.16.1]: https://github.com/date-fns/date-fns/compare/v2.16.0...v2.16.1 [2.
startOfDayYour coding agent can read these notes before it upgrades. Set up the MCP server →