date-fns/date-fns (date-fns)
### [`v3.6.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v360---2024-03-18)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.5.0...v3.6.0)
On this release worked [@kossnocorp](https://togithub.com/kossnocorp) and [@world1dan](https://togithub.com/world1dan). Also, thanks to [@seated](https://togithub.com/seated) [for sponsoring me](https://togithub.com/sponsors/kossnocorp).
##### Fixed
- [Fixed weeks in the Belarisuan locale's `formatDistance`.](https://togithub.com/date-fns/date-fns/pull/3720)
##### Added
- [Added CDN versions of modules compatible with older browsers.](https://togithub.com/date-fns/date-fns/pull/3737) [See the CDN guide.](https://date-fns.org/docs/CDN)
### [`v3.5.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v350---2024-03-15)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.4.0...v3.5.0)
Kudos to [@fturmel](https://togithub.com/fturmel), [@kossnocorp](https://togithub.com/kossnocorp), [@makstyle119](https://togithub.com/makstyle119), [@tan75](https://togithub.com/tan75), [@marcreichel](https://togithub.com/marcreichel), [@tareknatsheh](https://togithub.com/tareknatsheh) and [@audunru](https://togithub.com/audunru) for working on the release. Also, thanks to [@seated](https://togithub.com/seated) [for sponsoring me](https://togithub.com/sponsors/kossnocorp).
##### Fixed
- [Fixed functions that use current date internally and made them work with date extensions like `UTCDate`.](https://togithub.com/date-fns/date-fns/issues/3730)
- [Fixed `daysToWeeks` returning negative 0.](https://togithub.com/date-fns/date-fns/commit/882ced61c692c7c4a79eaaec6eb07cb9c8c9195b)
- [Fixed German grammar for the "half a minute" string.](https://togithub.com/date-fns/date-fns/pull/3715)
##### Added
- Added the `constructNow` function that creates the current date using the passed reference date's constructor.
### [`v3.4.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v340---2024-03-11)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.3.1...v3.4.0)
Kudos to [@kossnocorp](https://togithub.com/kossnocorp), [@sakamossan](https://togithub.com/sakamossan) and [@Revan99](https://togithub.com/Revan99) for working on the release. Also thanks to [@seated](https://togithub.com/seated) for sponsoring me.
##### Added
- [Added `roundToNearestHours` function.](https://togithub.com/date-fns/date-fns/pull/2752)
- [Added Central Kurdish (`ckb`) locale.](https://togithub.com/date-fns/date-fns/pull/3421)
### [`v3.3.1`](https://togithub.com/date-fns/date-fns/releases/tag/v3.3.1)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.3.0...v3.3.1)
Kudos to [@kossnocorp](https://togithub.com/kossnocorp) and [@fturmel](https://togithub.com/fturmel) for working on the release.
##### Fixed
- Fixed DST issue in `getOverlappingDaysInIntervals`, resulting in an inconsistent number of days returned for intervals starting and ending in different DST periods.
- Fixed functions incorrectly using `trunc` instead of `round`. The bug was introduced in v3.3.0. The affected functions: `differenceInCalendarDays`, `differenceInCalendarISOWeeks`, `differenceInCalendarWeeks`, `getISOWeek`, `getWeek`, and `getISOWeeksInYear`.
### [`v3.3.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v330---2024-01-20)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.2.0...v3.3.0)
On this release worked [@kossnocorp](https://togithub.com/kossnocorp), [@TheKvikk](https://togithub.com/TheKvikk), [@fturmel](https://togithub.com/fturmel) and [@ckcherry23](https://togithub.com/ckcherry23).
##### Fixed
- Fixed the bug in `getOverlappingDaysInIntervals` caused by incorrect sorting of interval components that led to 0 for timestamps of different lengths.
- Fixed bugs when working with negative numbers caused by using `Math.floor` (`-1.1` → `-2`) instead of `Math.trunc` (`-1.1` → `-1`). Most of the conversion functions (i.e., `hoursToMinutes`) were affected when passing some negative fractional input. Also, some other functions that could be possibly affected by unfortunate timezone/date combinations were fixed.
The functions that were affected: `format`, `parse`, `getUnixTime`, `daysToWeeks`, `hoursToMilliseconds`, `hoursToMinutes`, `hoursToSeconds`, `milliseconds`, `minutesToMilliseconds`, `millisecondsToMinutes`, `monthsToYears`, `millisecondsToHours`, `millisecondsToSeconds`, `minutesToHours`, `minutesToSeconds`, `yearsToQuarters`, `yearsToMonths`, `yearsToDays`, `weeksToDays`, `secondsToMinutes`, `secondsToHours`, `quartersToYears`, `quartersToMonths` and `monthsToQuarters`.
- [Fixed the Czech locale's `formatDistance` to include `1` in `formatDistance`.](https://togithub.com/date-fns/date-fns/pull/3269)
- Fixed `differenceInSeconds` and other functions relying on rounding options that can produce a negative 0.
- [Added a preprocessor to the locales API, enabling fixing a long-standing bug in the French locale.](https://togithub.com/date-fns/date-fns/pull/3662) ([#1391](https://togithub.com/date-fns/date-fns/issues/1391))
- Added missing `yearsToDays` to the FP submodule.
- Made functions using rounding methods always return `0` instead of `-0`.
##### Added
- [Added `format` alias `formatDate` with corresponding `FormatDateOptions` interface](https://togithub.com/date-fns/date-fns/pull/3653).
### [`v3.2.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v320---2024-01-09)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.1.0...v3.2.0)
This release is brought to you by [@kossnocorp](https://togithub.com/kossnocorp), [@fturmel](https://togithub.com/fturmel), [@grossbart](https://togithub.com/grossbart), [@MelvinVermeer](https://togithub.com/MelvinVermeer), and [@jcarstairs-scottlogic](https://togithub.com/jcarstairs-scottlogic).
##### Fixed
- Fixed types compatability with Lodash's `flow` and fp-ts's `pipe`. ([#3641](https://togithub.com/date-fns/date-fns/issues/3641))
- [Fixed inconsistent behavior of `roundToNearestMinutes`.](https://togithub.com/date-fns/date-fns/pull/3132)
##### Added
- Added exports of `format`, `lightFormat`, and `parse` internals that enable 3rd-parties to consume those.
### [`v3.1.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v310---2024-01-05)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.6...v3.1.0)
This release is brought to you by [@kossnocorp](https://togithub.com/kossnocorp), [@makstyle119](https://togithub.com/makstyle119) and [@dmgawel](https://togithub.com/dmgawel).
##### Fixed
- [Fixed the plural form of weeks in Swedish](https://togithub.com/date-fns/date-fns/pull/3448).
##### Added
- [Added `yearsToDays` function](https://togithub.com/date-fns/date-fns/pull/3540).
- Added warning about using protected tokens like `Y` or `D` without passing a corresponding option. [See #2950](https://togithub.com/date-fns/date-fns/issues/2950).
### [`v3.0.6`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v306---2023-12-22)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.5...v3.0.6)
On this release worked [@imwh0im](https://togithub.com/imwh0im), [@jamcry](https://togithub.com/jamcry) and [@tyrw](https://togithub.com/tyrw).
##### Fixed
- [Fixed bug in `areIntervalsOverlapping` caused by incorrect sorting](https://togithub.com/date-fns/date-fns/pull/3628) ([#3614](https://togithub.com/date-fns/date-fns/issues/3614))
### [`v3.0.5`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v305---2023-12-21)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.4...v3.0.5)
This release is brought to you by [@goku4199](https://togithub.com/goku4199).
##### Fixed
- [Fixed internal `toDate` not processing string arguments properly](https://togithub.com/date-fns/date-fns/pull/3626)
### [`v3.0.4`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v304---2023-12-21)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.3...v3.0.4)
This release is brought to you by [@kossnocorp](https://togithub.com/kossnocorp).
##### Fixed
- Fixed isWithinInterval bug caused by incorrectly sorting dates ([#3623](https://togithub.com/date-fns/date-fns/issues/3623)).
### [`v3.0.3`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v303---2023-12-21)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.2...v3.0.3)
##### Fixed
- Rolled back pointing ESM types to the same `d.ts` files. Instead now it copies the content to avoid [the Masquerading as CJS problem](https://togithub.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md) reported by "Are the types wrong?".
### [`v3.0.2`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v302---2023-12-21)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.1...v3.0.2)
##### Fixed
- Fixed [yet another issue caused by ESM types](https://togithub.com/date-fns/date-fns/issues/3620) by pointing to the same `d.ts` files.
- [Added `package.json` to exports](https://togithub.com/date-fns/date-fns/pull/3601) to provide access to tooling.
- [Fixed TypeScript 5.4 build break](https://togithub.com/date-fns/date-fns/pull/3598) by using the latest type names.
### [`v3.0.1`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v301---2023-12-20)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.0...v3.0.1)
##### Fixed
- [Fixed an error](https://togithub.com/date-fns/date-fns/pull/3618) in certain environments caused by `d.mts` files exporting only types.
### [`v3.0.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v300---2023-12-18)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v2.30.0...v3.0.0)
##### Changed
- **BREAKING**: date-fns is now a dual-package with the support of both ESM and CommonJS. The files exports are now explicitly in the `package.json`. The ESM files now have `.mjs` extension.
- **BREAKING**: The package now has a flat structure, meaning functions are now named `node_modules/date-fns/add.mjs`, locales are `node_modules/date-fns/locale/enUS.mjs`, etc.
- **BREAKING**: Now all file content’s exported via named exports instead of `export default`, which will require change direct imports i.e. `const addDays = require(‘date-fns/addDays’)` to `const { addDays } = require(‘date-fns/addDays’)`.
- **BREAKING**: TypeScript types are now completely rewritten, check out the `d.ts` files for more information.
- **BREAKING**: `constants` now is not exported via the index, so to import one use `import { daysInYear } from "date-fns/constants";`. It improves compatibility with setups that modularize imports [like Next.js](https://twitter.com/kossnocorp/status/1731181274579325260).
- **BREAKING**: Functions now don’t check the number of passed arguments, delegating this task to type checkers. The functions are now slimmer because of this.
- **BREAKING** The arguments are not explicitly converted to the target types. Instead, they are passed as is, delegating this task to type checkers.
- **BREAKING**: Functions that accept `Interval` arguments now do not throw an error if the start is before the end and handle it as a negative interval. If one of the properties in an `Invalid Date`, these functions also do not throw and handle them as invalid intervals.
- `areIntervalsOverlapping` normalize intervals before comparison, so `{ start: a, end: b }` is practically equivalent to `{ start: b, end: a }`. When comparing intervals with one of the properties being `Invalid Date`, the function will return false unless the others are valid and equal, given the `inclusive` option is passed. Otherwise, and when even one of the intervals has both properties invalid, the function will always return `false`.
- `getOverlappingDaysInIntervals` now normalizes intervals before comparison, so `{ start: a, end: b }` is practically equivalent to `{ start: b, end: a }`. If any of the intervals’ properties is an `Invalid Date`, the function will always return 0.
- `isWithinInterval` now normalizes intervals before comparison, so `{ start: a, end: b }` is practically equivalent to `{ start: b, end: a }`. If any of the intervals’ properties is an `Invalid Date`, the function will always return false.
- `intervalToDuration` now returns negative durations for negative intervals. If one or both of the interval properties are invalid, the function will return an empty object.
- The eachXOfInterval functions (`eachDayOfInterval`, `eachHourOfInterval`, `eachMinuteOfInterval`, `eachMonthOfInterval`, `eachWeekendOfInterval`, `eachWeekendOfMonth`, `eachWeekendOfYear`, `eachWeekOfInterval`, `eachYearOfInterval`) now return a reversed array if the passed interval’s start is after the end. Invalid properties will result in an empty array. Functions that accept the `step` option now also allow negative, 0, and NaN values and return reversed results if the step is negative and an empty array otherwise.
- **BREAKING**: `intervalToDuration` now skips 0 values in the resulting duration, resulting in more compact objects with only relevant properties.
- **BREAKING**: `roundToNearestMinutes` now returns `Invalid Date` instead of throwing an error when `nearestTo` option is less than 1 or more than 30.
- **BREAKING**: IE is no longer supported.
- **BREAKING**: Now all functions use `Math.trunc` rounding method where rounding is required. The behavior is configurable on a per-function basis.
- **BREAKING**: Undocumented `onlyNumeric` option was removed from `nn` and `sv` locales. If you relied on it, [please contact me](mailto:koss@nocorp.me).
- **BREAKING**: Flow is not supported anymore. If you relied on it, [please contact me](mailto:koss@nocorp.me).
- **BREAKING**: The locales now use regular functions instead of the UTC version, which should not break any code unless you used locales directly.
##### Added
- All functions that accept date arguments now also accept strings.
- All functions now export options interfaces.
- Now functions allow passing custom Date extensions like [UTCDate](https://togithub.com/date-fns/utc). They will detect and use the arguments constructor to generate the result of the same class.
- `eachMonthOfInterval`, `eachQuarterOfInterval`, `eachWeekOfInterval`, and `eachYearOfInterval` now accept the `step` option like most of the eachXOfInterval functions.
- A new `interval` function that validates interval, emulating the v2 interval functions behavior.
- `differenceInX` functions now accept options and allow setting up `roundingMethod` that configures how the result is rounded. `Math.trunc` is the default method.
### [`v2.30.0`](https://togithub.com/date-fns/date-fns/releases/tag/v2.30.0)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v2.29.3...v2.30.0)
Kudos to [@kossnocorp](https://togithub.com/kossnocorp) and [@Andarist](https://togithub.com/Andarist) for working on the release.
##### Changes
- Fixed increased build size after enabling compatibility with older browsers in the previous release. This was done by adding [@babel/runtime](https://togithub.com/babel/runtime) as a dependency. [See more details](https://togithub.com/date-fns/date-fns/issues/3208#issuecomment-1528592465).
### [`v2.29.3`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v2293---2022-09-13)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v2.29.2...v2.29.3)
This release is prepared by our own [@leshakoss](https://togithub.com/leshakoss).
##### Fixed
- [Fixed Ukrainian (`uk`) locale grammar for `formatDistance`.](https://togithub.com/date-fns/date-fns/pull/3175)
- [Improved browser compatibility by transforming the code with `@babel/preset-env`.](https://togithub.com/date-fns/date-fns/pull/3167)
### [`v2.29.2`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v2292---2022-08-18)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v2.29.1...v2.29.2)
This release is brought to you by [@nopears](https://togithub.com/nopears), [@vadimpopa](https://togithub.com/vadimpopa) and [@leshakoss](https://togithub.com/leshakoss).
##### Fixed
- [Fixed `sv` locale abbreviated months matcher.](https://togithub.com/date-fns/date-fns/pull/3160)
- [Fixed `uk` locale abbreviated months matcher.](https://togithub.com/date-fns/date-fns/pull/3139)
- [Fixed a breaking change in `intervalToDuration` by removing a recently introduced RangeError.](https://togithub.com/date-fns/date-fns/pull/3153)
### [`v2.29.1`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v2291---2022-08-18)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v2.29.0...v2.29.1)
Thanks to [@fturmel](https://togithub.com/fturmel) for working on the release.
##### Fixed
- [Fixed TypeScript and flow types for daysInYear constant.](https://togithub.com/date-fns/date-fns/pull/3125)
### [`v2.29.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v2290---2022-07-22)
[Compare Source](https://togithub.com/date-fns/date-fns/compare/v2.28.0...v2.29.0)
On this release worked [@tan75](https://togithub.com/tan75), [@kossnocorp](https://togithub.com/kossnocorp), [@nopears](https://togithub.com/nopears), [@Balastrong](https://togithub.com/Balastrong), [@cpapazoglou](https://togithub.com/cpapazoglou), [@dovca](https://togithub.com/dovca), [@aliasgar55](https://togithub.com/aliasgar55), [@tomchentw](https://togithub.com/tomchentw), [@JuanM04](https://togithub.com/JuanM04), [@alexandresaura](https://togithub.com/alexandresaura), [@fturmel](https://togithub.com/fturmel), [@aezell](https://togithub.com/aezell), [@andersravn](https://togithub.com/andersravn), [@TiagoPortfolio](https://togithub.com/TiagoPortfolio), [@SukkaW](https://togithub.com/SukkaW), [@Zebreus](https://togithub.com/Zebreus), [@aviskarkc10](https://togithub.com/aviskarkc10), [@maic66](https://togithub.com/maic66), [@a-korzun](https://togithub.com/a-korzun), [@Mejans](https://togithub.com/Mejans), [@davidspiess](https://togithub.com/davidspiess), [@alexgul1](https://togithub.com/alexgul1), [@matroskin062](https://togithub.com/matroskin062), [@undecaf](https://togithub.com/undecaf), [@mprovenc](https://togithub.com/mprovenc), [@jooola](https://togithub.com/jooola) and [@leshakoss](https://togithub.com/leshakoss).
##### Added
- [Added `intlFormatDistance` function\`.](https://togithub.com/date-fns/date-fns/pull/2173)
- [Added `setDefaultOptions` and `getDefaultOptions` functions that allow you to set default default locale, `weekStartsOn` and `firstWeekContainsDate`.](https://togithub.com/date-fns/date-fns/pull/3069)
- [Added `roundingMethod` option to `roundToNearestMinutes`.](https://togithub.com/date-fns/date-fns/pull/3091)
- [Added Swiss Italian locale (`it-CH`).](https://togithub.com/date-fns/date-fns/pull/2886)
- [Added Occitan (`oc`) locale.](https://togithub.com/date-fns/date-fns/pull/2106) ([#2061](https://togithub.com/date-fns/date-fns/issues/2061))
- [Added Belarusian Classic (`be-tarask`) locale.](https://togithub.com/date-fns/date-fns/pull/3115)
##### Fixed
- [Fixed Azerbaijani (`az`) locale for `formatDistance`.](https://togithub.com/date-fns/date-fns/pull/2924)
- [Fixed Czech (`cs`) locale for `parse`.](https://togithub.com/date-fns/date-fns/pull/3059)
- [Fixed TypeScript types for constants.](https://togithub.com/date-fns/date-fns/pull/2941)
- [Fixed long formatters in the South African English locale (`en-ZA`).](https://togithub.com/date-fns/date-fns/pull/3014)
- [Fixed a typo in the Icelandic locale (`is`) for `format`.](https://togithub.com/date-fns/date-fns/pull/2974)
- [Fixed weekday format for `formatRelative` in the Portuguese locale (`pt`).](https://togithub.com/date-fns/date-fns/pull/2992)
- [Fixed `intervalToDuration` being off by 1 day sometimes.](https://togithub.com/date-fns/date-fns/pull/2616)
- [Fixed ordinal number formatting in Italian locale (`it`).](https://togithub.com/date-fns/date-fns/pull/1617)
- [Fixed issue parsing months in Croatian (`hr`), Georgian (`ka`) and Serbian (`sr` and `sr-Latn`) locales.](https://togithub.com/date-fns/date-fns/pull/2898)
##### Changed
- [Replaced `git.io` links with full URLs in error messages.](https://togithub.com/date-fns/date-fns/pull/3021)
- [*Internal*: removed "v2.0.0 breaking changes" section from individual function docs](https://togithub.com/date-fns/date-fns/pull/2905)
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
^2.28.0
->^3.0.0
Release Notes
date-fns/date-fns (date-fns)
### [`v3.6.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v360---2024-03-18) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.5.0...v3.6.0) On this release worked [@kossnocorp](https://togithub.com/kossnocorp) and [@world1dan](https://togithub.com/world1dan). Also, thanks to [@seated](https://togithub.com/seated) [for sponsoring me](https://togithub.com/sponsors/kossnocorp). ##### Fixed - [Fixed weeks in the Belarisuan locale's `formatDistance`.](https://togithub.com/date-fns/date-fns/pull/3720) ##### Added - [Added CDN versions of modules compatible with older browsers.](https://togithub.com/date-fns/date-fns/pull/3737) [See the CDN guide.](https://date-fns.org/docs/CDN) ### [`v3.5.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v350---2024-03-15) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.4.0...v3.5.0) Kudos to [@fturmel](https://togithub.com/fturmel), [@kossnocorp](https://togithub.com/kossnocorp), [@makstyle119](https://togithub.com/makstyle119), [@tan75](https://togithub.com/tan75), [@marcreichel](https://togithub.com/marcreichel), [@tareknatsheh](https://togithub.com/tareknatsheh) and [@audunru](https://togithub.com/audunru) for working on the release. Also, thanks to [@seated](https://togithub.com/seated) [for sponsoring me](https://togithub.com/sponsors/kossnocorp). ##### Fixed - [Fixed functions that use current date internally and made them work with date extensions like `UTCDate`.](https://togithub.com/date-fns/date-fns/issues/3730) - [Fixed `daysToWeeks` returning negative 0.](https://togithub.com/date-fns/date-fns/commit/882ced61c692c7c4a79eaaec6eb07cb9c8c9195b) - [Fixed German grammar for the "half a minute" string.](https://togithub.com/date-fns/date-fns/pull/3715) ##### Added - Added the `constructNow` function that creates the current date using the passed reference date's constructor. ### [`v3.4.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v340---2024-03-11) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.3.1...v3.4.0) Kudos to [@kossnocorp](https://togithub.com/kossnocorp), [@sakamossan](https://togithub.com/sakamossan) and [@Revan99](https://togithub.com/Revan99) for working on the release. Also thanks to [@seated](https://togithub.com/seated) for sponsoring me. ##### Added - [Added `roundToNearestHours` function.](https://togithub.com/date-fns/date-fns/pull/2752) - [Added Central Kurdish (`ckb`) locale.](https://togithub.com/date-fns/date-fns/pull/3421) ### [`v3.3.1`](https://togithub.com/date-fns/date-fns/releases/tag/v3.3.1) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.3.0...v3.3.1) Kudos to [@kossnocorp](https://togithub.com/kossnocorp) and [@fturmel](https://togithub.com/fturmel) for working on the release. ##### Fixed - Fixed DST issue in `getOverlappingDaysInIntervals`, resulting in an inconsistent number of days returned for intervals starting and ending in different DST periods. - Fixed functions incorrectly using `trunc` instead of `round`. The bug was introduced in v3.3.0. The affected functions: `differenceInCalendarDays`, `differenceInCalendarISOWeeks`, `differenceInCalendarWeeks`, `getISOWeek`, `getWeek`, and `getISOWeeksInYear`. ### [`v3.3.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v330---2024-01-20) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.2.0...v3.3.0) On this release worked [@kossnocorp](https://togithub.com/kossnocorp), [@TheKvikk](https://togithub.com/TheKvikk), [@fturmel](https://togithub.com/fturmel) and [@ckcherry23](https://togithub.com/ckcherry23). ##### Fixed - Fixed the bug in `getOverlappingDaysInIntervals` caused by incorrect sorting of interval components that led to 0 for timestamps of different lengths. - Fixed bugs when working with negative numbers caused by using `Math.floor` (`-1.1` → `-2`) instead of `Math.trunc` (`-1.1` → `-1`). Most of the conversion functions (i.e., `hoursToMinutes`) were affected when passing some negative fractional input. Also, some other functions that could be possibly affected by unfortunate timezone/date combinations were fixed. The functions that were affected: `format`, `parse`, `getUnixTime`, `daysToWeeks`, `hoursToMilliseconds`, `hoursToMinutes`, `hoursToSeconds`, `milliseconds`, `minutesToMilliseconds`, `millisecondsToMinutes`, `monthsToYears`, `millisecondsToHours`, `millisecondsToSeconds`, `minutesToHours`, `minutesToSeconds`, `yearsToQuarters`, `yearsToMonths`, `yearsToDays`, `weeksToDays`, `secondsToMinutes`, `secondsToHours`, `quartersToYears`, `quartersToMonths` and `monthsToQuarters`. - [Fixed the Czech locale's `formatDistance` to include `1` in `formatDistance`.](https://togithub.com/date-fns/date-fns/pull/3269) - Fixed `differenceInSeconds` and other functions relying on rounding options that can produce a negative 0. - [Added a preprocessor to the locales API, enabling fixing a long-standing bug in the French locale.](https://togithub.com/date-fns/date-fns/pull/3662) ([#1391](https://togithub.com/date-fns/date-fns/issues/1391)) - Added missing `yearsToDays` to the FP submodule. - Made functions using rounding methods always return `0` instead of `-0`. ##### Added - [Added `format` alias `formatDate` with corresponding `FormatDateOptions` interface](https://togithub.com/date-fns/date-fns/pull/3653). ### [`v3.2.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v320---2024-01-09) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.1.0...v3.2.0) This release is brought to you by [@kossnocorp](https://togithub.com/kossnocorp), [@fturmel](https://togithub.com/fturmel), [@grossbart](https://togithub.com/grossbart), [@MelvinVermeer](https://togithub.com/MelvinVermeer), and [@jcarstairs-scottlogic](https://togithub.com/jcarstairs-scottlogic). ##### Fixed - Fixed types compatability with Lodash's `flow` and fp-ts's `pipe`. ([#3641](https://togithub.com/date-fns/date-fns/issues/3641)) - [Fixed inconsistent behavior of `roundToNearestMinutes`.](https://togithub.com/date-fns/date-fns/pull/3132) ##### Added - Added exports of `format`, `lightFormat`, and `parse` internals that enable 3rd-parties to consume those. ### [`v3.1.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v310---2024-01-05) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.6...v3.1.0) This release is brought to you by [@kossnocorp](https://togithub.com/kossnocorp), [@makstyle119](https://togithub.com/makstyle119) and [@dmgawel](https://togithub.com/dmgawel). ##### Fixed - [Fixed the plural form of weeks in Swedish](https://togithub.com/date-fns/date-fns/pull/3448). ##### Added - [Added `yearsToDays` function](https://togithub.com/date-fns/date-fns/pull/3540). - Added warning about using protected tokens like `Y` or `D` without passing a corresponding option. [See #2950](https://togithub.com/date-fns/date-fns/issues/2950). ### [`v3.0.6`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v306---2023-12-22) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.5...v3.0.6) On this release worked [@imwh0im](https://togithub.com/imwh0im), [@jamcry](https://togithub.com/jamcry) and [@tyrw](https://togithub.com/tyrw). ##### Fixed - [Fixed bug in `areIntervalsOverlapping` caused by incorrect sorting](https://togithub.com/date-fns/date-fns/pull/3628) ([#3614](https://togithub.com/date-fns/date-fns/issues/3614)) ### [`v3.0.5`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v305---2023-12-21) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.4...v3.0.5) This release is brought to you by [@goku4199](https://togithub.com/goku4199). ##### Fixed - [Fixed internal `toDate` not processing string arguments properly](https://togithub.com/date-fns/date-fns/pull/3626) ### [`v3.0.4`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v304---2023-12-21) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.3...v3.0.4) This release is brought to you by [@kossnocorp](https://togithub.com/kossnocorp). ##### Fixed - Fixed isWithinInterval bug caused by incorrectly sorting dates ([#3623](https://togithub.com/date-fns/date-fns/issues/3623)). ### [`v3.0.3`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v303---2023-12-21) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.2...v3.0.3) ##### Fixed - Rolled back pointing ESM types to the same `d.ts` files. Instead now it copies the content to avoid [the Masquerading as CJS problem](https://togithub.com/arethetypeswrong/arethetypeswrong.github.io/blob/main/docs/problems/FalseCJS.md) reported by "Are the types wrong?". ### [`v3.0.2`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v302---2023-12-21) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.1...v3.0.2) ##### Fixed - Fixed [yet another issue caused by ESM types](https://togithub.com/date-fns/date-fns/issues/3620) by pointing to the same `d.ts` files. - [Added `package.json` to exports](https://togithub.com/date-fns/date-fns/pull/3601) to provide access to tooling. - [Fixed TypeScript 5.4 build break](https://togithub.com/date-fns/date-fns/pull/3598) by using the latest type names. ### [`v3.0.1`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v301---2023-12-20) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v3.0.0...v3.0.1) ##### Fixed - [Fixed an error](https://togithub.com/date-fns/date-fns/pull/3618) in certain environments caused by `d.mts` files exporting only types. ### [`v3.0.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v300---2023-12-18) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v2.30.0...v3.0.0) ##### Changed - **BREAKING**: date-fns is now a dual-package with the support of both ESM and CommonJS. The files exports are now explicitly in the `package.json`. The ESM files now have `.mjs` extension. - **BREAKING**: The package now has a flat structure, meaning functions are now named `node_modules/date-fns/add.mjs`, locales are `node_modules/date-fns/locale/enUS.mjs`, etc. - **BREAKING**: Now all file content’s exported via named exports instead of `export default`, which will require change direct imports i.e. `const addDays = require(‘date-fns/addDays’)` to `const { addDays } = require(‘date-fns/addDays’)`. - **BREAKING**: TypeScript types are now completely rewritten, check out the `d.ts` files for more information. - **BREAKING**: `constants` now is not exported via the index, so to import one use `import { daysInYear } from "date-fns/constants";`. It improves compatibility with setups that modularize imports [like Next.js](https://twitter.com/kossnocorp/status/1731181274579325260). - **BREAKING**: Functions now don’t check the number of passed arguments, delegating this task to type checkers. The functions are now slimmer because of this. - **BREAKING** The arguments are not explicitly converted to the target types. Instead, they are passed as is, delegating this task to type checkers. - **BREAKING**: Functions that accept `Interval` arguments now do not throw an error if the start is before the end and handle it as a negative interval. If one of the properties in an `Invalid Date`, these functions also do not throw and handle them as invalid intervals. - `areIntervalsOverlapping` normalize intervals before comparison, so `{ start: a, end: b }` is practically equivalent to `{ start: b, end: a }`. When comparing intervals with one of the properties being `Invalid Date`, the function will return false unless the others are valid and equal, given the `inclusive` option is passed. Otherwise, and when even one of the intervals has both properties invalid, the function will always return `false`. - `getOverlappingDaysInIntervals` now normalizes intervals before comparison, so `{ start: a, end: b }` is practically equivalent to `{ start: b, end: a }`. If any of the intervals’ properties is an `Invalid Date`, the function will always return 0. - `isWithinInterval` now normalizes intervals before comparison, so `{ start: a, end: b }` is practically equivalent to `{ start: b, end: a }`. If any of the intervals’ properties is an `Invalid Date`, the function will always return false. - `intervalToDuration` now returns negative durations for negative intervals. If one or both of the interval properties are invalid, the function will return an empty object. - The eachXOfInterval functions (`eachDayOfInterval`, `eachHourOfInterval`, `eachMinuteOfInterval`, `eachMonthOfInterval`, `eachWeekendOfInterval`, `eachWeekendOfMonth`, `eachWeekendOfYear`, `eachWeekOfInterval`, `eachYearOfInterval`) now return a reversed array if the passed interval’s start is after the end. Invalid properties will result in an empty array. Functions that accept the `step` option now also allow negative, 0, and NaN values and return reversed results if the step is negative and an empty array otherwise. - **BREAKING**: `intervalToDuration` now skips 0 values in the resulting duration, resulting in more compact objects with only relevant properties. - **BREAKING**: `roundToNearestMinutes` now returns `Invalid Date` instead of throwing an error when `nearestTo` option is less than 1 or more than 30. - **BREAKING**: IE is no longer supported. - **BREAKING**: Now all functions use `Math.trunc` rounding method where rounding is required. The behavior is configurable on a per-function basis. - **BREAKING**: Undocumented `onlyNumeric` option was removed from `nn` and `sv` locales. If you relied on it, [please contact me](mailto:koss@nocorp.me). - **BREAKING**: Flow is not supported anymore. If you relied on it, [please contact me](mailto:koss@nocorp.me). - **BREAKING**: The locales now use regular functions instead of the UTC version, which should not break any code unless you used locales directly. ##### Added - All functions that accept date arguments now also accept strings. - All functions now export options interfaces. - Now functions allow passing custom Date extensions like [UTCDate](https://togithub.com/date-fns/utc). They will detect and use the arguments constructor to generate the result of the same class. - `eachMonthOfInterval`, `eachQuarterOfInterval`, `eachWeekOfInterval`, and `eachYearOfInterval` now accept the `step` option like most of the eachXOfInterval functions. - A new `interval` function that validates interval, emulating the v2 interval functions behavior. - `differenceInX` functions now accept options and allow setting up `roundingMethod` that configures how the result is rounded. `Math.trunc` is the default method. ### [`v2.30.0`](https://togithub.com/date-fns/date-fns/releases/tag/v2.30.0) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v2.29.3...v2.30.0) Kudos to [@kossnocorp](https://togithub.com/kossnocorp) and [@Andarist](https://togithub.com/Andarist) for working on the release. ##### Changes - Fixed increased build size after enabling compatibility with older browsers in the previous release. This was done by adding [@babel/runtime](https://togithub.com/babel/runtime) as a dependency. [See more details](https://togithub.com/date-fns/date-fns/issues/3208#issuecomment-1528592465). ### [`v2.29.3`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v2293---2022-09-13) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v2.29.2...v2.29.3) This release is prepared by our own [@leshakoss](https://togithub.com/leshakoss). ##### Fixed - [Fixed Ukrainian (`uk`) locale grammar for `formatDistance`.](https://togithub.com/date-fns/date-fns/pull/3175) - [Improved browser compatibility by transforming the code with `@babel/preset-env`.](https://togithub.com/date-fns/date-fns/pull/3167) ### [`v2.29.2`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v2292---2022-08-18) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v2.29.1...v2.29.2) This release is brought to you by [@nopears](https://togithub.com/nopears), [@vadimpopa](https://togithub.com/vadimpopa) and [@leshakoss](https://togithub.com/leshakoss). ##### Fixed - [Fixed `sv` locale abbreviated months matcher.](https://togithub.com/date-fns/date-fns/pull/3160) - [Fixed `uk` locale abbreviated months matcher.](https://togithub.com/date-fns/date-fns/pull/3139) - [Fixed a breaking change in `intervalToDuration` by removing a recently introduced RangeError.](https://togithub.com/date-fns/date-fns/pull/3153) ### [`v2.29.1`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v2291---2022-08-18) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v2.29.0...v2.29.1) Thanks to [@fturmel](https://togithub.com/fturmel) for working on the release. ##### Fixed - [Fixed TypeScript and flow types for daysInYear constant.](https://togithub.com/date-fns/date-fns/pull/3125) ### [`v2.29.0`](https://togithub.com/date-fns/date-fns/blob/HEAD/CHANGELOG.md#v2290---2022-07-22) [Compare Source](https://togithub.com/date-fns/date-fns/compare/v2.28.0...v2.29.0) On this release worked [@tan75](https://togithub.com/tan75), [@kossnocorp](https://togithub.com/kossnocorp), [@nopears](https://togithub.com/nopears), [@Balastrong](https://togithub.com/Balastrong), [@cpapazoglou](https://togithub.com/cpapazoglou), [@dovca](https://togithub.com/dovca), [@aliasgar55](https://togithub.com/aliasgar55), [@tomchentw](https://togithub.com/tomchentw), [@JuanM04](https://togithub.com/JuanM04), [@alexandresaura](https://togithub.com/alexandresaura), [@fturmel](https://togithub.com/fturmel), [@aezell](https://togithub.com/aezell), [@andersravn](https://togithub.com/andersravn), [@TiagoPortfolio](https://togithub.com/TiagoPortfolio), [@SukkaW](https://togithub.com/SukkaW), [@Zebreus](https://togithub.com/Zebreus), [@aviskarkc10](https://togithub.com/aviskarkc10), [@maic66](https://togithub.com/maic66), [@a-korzun](https://togithub.com/a-korzun), [@Mejans](https://togithub.com/Mejans), [@davidspiess](https://togithub.com/davidspiess), [@alexgul1](https://togithub.com/alexgul1), [@matroskin062](https://togithub.com/matroskin062), [@undecaf](https://togithub.com/undecaf), [@mprovenc](https://togithub.com/mprovenc), [@jooola](https://togithub.com/jooola) and [@leshakoss](https://togithub.com/leshakoss). ##### Added - [Added `intlFormatDistance` function\`.](https://togithub.com/date-fns/date-fns/pull/2173) - [Added `setDefaultOptions` and `getDefaultOptions` functions that allow you to set default default locale, `weekStartsOn` and `firstWeekContainsDate`.](https://togithub.com/date-fns/date-fns/pull/3069) - [Added `roundingMethod` option to `roundToNearestMinutes`.](https://togithub.com/date-fns/date-fns/pull/3091) - [Added Swiss Italian locale (`it-CH`).](https://togithub.com/date-fns/date-fns/pull/2886) - [Added Occitan (`oc`) locale.](https://togithub.com/date-fns/date-fns/pull/2106) ([#2061](https://togithub.com/date-fns/date-fns/issues/2061)) - [Added Belarusian Classic (`be-tarask`) locale.](https://togithub.com/date-fns/date-fns/pull/3115) ##### Fixed - [Fixed Azerbaijani (`az`) locale for `formatDistance`.](https://togithub.com/date-fns/date-fns/pull/2924) - [Fixed Czech (`cs`) locale for `parse`.](https://togithub.com/date-fns/date-fns/pull/3059) - [Fixed TypeScript types for constants.](https://togithub.com/date-fns/date-fns/pull/2941) - [Fixed long formatters in the South African English locale (`en-ZA`).](https://togithub.com/date-fns/date-fns/pull/3014) - [Fixed a typo in the Icelandic locale (`is`) for `format`.](https://togithub.com/date-fns/date-fns/pull/2974) - [Fixed weekday format for `formatRelative` in the Portuguese locale (`pt`).](https://togithub.com/date-fns/date-fns/pull/2992) - [Fixed `intervalToDuration` being off by 1 day sometimes.](https://togithub.com/date-fns/date-fns/pull/2616) - [Fixed ordinal number formatting in Italian locale (`it`).](https://togithub.com/date-fns/date-fns/pull/1617) - [Fixed issue parsing months in Croatian (`hr`), Georgian (`ka`) and Serbian (`sr` and `sr-Latn`) locales.](https://togithub.com/date-fns/date-fns/pull/2898) ##### Changed - [Replaced `git.io` links with full URLs in error messages.](https://togithub.com/date-fns/date-fns/pull/3021) - [*Internal*: removed "v2.0.0 breaking changes" section from individual function docs](https://togithub.com/date-fns/date-fns/pull/2905)Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.