This change log lists pre-release versions and changes made since v2.0.0-alpha.1.
- Remove v2 notice shown at postinstall.
- Catalan (ca) locale spelling errors and update following official grammatical rules. Thanks to @avizcaino!
- Improved performance of
addBusinessDaysanddifferenceInBusinessDays. Kudos to @RudyRed!
- Handle negative amount in
addBusinessDays. Credits go to @RudyRed.
- Fix bug in
differenceInBusinessDays. Thanks to @RudyRed. - Fix TypeScript typings for curried functions. Kudos to @dkozickis.
- BREAKING:
min&maxfunctions now returnInvalid Datefor all invalid inputs. See PR and issue. Credits go to @diiorio.
- Update Croatian (hr) locale for v2. Thanks to @jerzabek.
-
Add Welsh (Cymraeg) locale. Kudos to @elmomalmo!
-
Update Georgian (ka) locale for v2. Thanks to @shvelo!
-
Fix bug when week year was used to parse Gregorian year and the Gregorian year was used to parse week year.
-
The Czech locale was added to the locales index file so it could be imported as
import { cs } from 'date-fns/locale'.
-
BREAKING: stand-alone era token now parses as
1 BCand1 ADinstead of10 BCand10 AD. -
BREAKING: from now on
parsevalidates the token string. Combinations that don't make sense or could lead to bugs are prohibited and will throwRangeError. For example usage of 24-hour format token with AM/PM token will throw an exception:parse('23 AM', 'HH a', new Date()) //=> RangeError: The format string mustn't contain `HH` and `a` at the same time
See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true
-
-
Add months in genitive to
format. -
Add weekdays in accusative to
formatRelative. -
Enable the locale.
-
- Added
@babel/plugin-transform-arrow-functionsto the Babel plugins list. That fixed the problem with arrow functions in the Finnish locale that caused IE11 to throwSyntax Error.
-
Added
@babel/plugin-transform-template-literalsto the Babel plugins list. That fixed the problem with template literals in the Polish locale that caused IE11 to throwSyntax Error.
- Updated Czech (cs) locale for v2. Thank you, @JozefBiros!
- Fix
constusage that broke UglifyJS.
-
Add constants that can be imported directly from
date-fnsor the submoduledate-fns/constants:-
maxTime -
minTime
Thanks to @cmatiello!
-
-
Add p+ token support to parse function. Credits go to @ericreis.
-
Add new function
differenceInBusinessDayswhich calculates the difference in business days. Kudos to @ThorrStevens! -
Add new function
addBusinessDays, similar toaddDaysbut ignoring weekends. Thanks to @ThorrStevens! -
Restore now-dependent functions that initially were removed in v2:
formatDistanceToNowisFutureisPastendOfTodayendOfTomorrowendOfYesterdaystartOfTodaystartOfTomorrowstartOfYesterdayisTodayisTomorrowisYesterdayisThisSecondisThisMinuteisThisHourisThisWeekisThisISOWeekisThisMonthisThisQuarterisThisYearisThisISOYear
- Enable updated locales that we forgot to remove from the outdated locales list:
- Arabic locale (Modern Standard Arabic; ar-DZ),
- Turkish locale (tk),
- Indonesian locale (id),
- Belarusian locale (be),
- Finnish locale (fi),
- Icelandic locale (is),
- Romanian locale (ro),
- Slovak locale (sk),
- Thai locale (th).
-
Fix exception in
parseISOwhen the passed string contains a colon. Kudos to @stefanprobst. -
Add
localeto options definition to all functions that acceptweekStartsOn(see #1159).
-
BREAKING:
format,lightFormatandparsenow will throw aRangeErrorexception if format string contains an unescaped latin character that isn't a valid formatting token.format(new Date(), 'nnnn-MM-dd') //=> RangeError: Format string contains an unescaped latin alphabet character `n`
-
BREAKING: Temporary
awareOfUnicodeTokensoption is removed fromformatandparse. It is replaced with optionsuseAdditionalWeekYearTokensfor unlockingYYandYYYYtokens anduseAdditionalDayOfYearTokensforDandDD.format(new Date(), 'YY', { useAdditionalWeekYearTokens: true }) //=> '86' format(new Date(), 'D', { useAdditionalDayOfYearTokens: true }) //=> '364'
-
BREAKING: Treat invalid time as
Invalid DateinparseISO. Kudos to @stefanprobst. -
Updated
formatLongfor de locale to follow DIN 5008. Kudos to @saithis. -
Improve Japanese translation of
formatRelative(see #1097). Thanks to @ta-kiyama. -
Fix short date format for Swedish locale. Credits go to @Neorth
-
Improve Japanese translation of
formatDistancewithaddSuffixoption. Kudos to @kudohamu! -
Improve
ordinalNumberfunction for Chinese (zh-CN) locale. Thanks to @cubicwork!
-
Add fraction of seconds support to
lightFormat. Thanks to @waseemahmad31. -
Added nn locale. Credits go to @draperunner.
-
Added lv locale. Kudos to @prudolfs.
-
pl locale was updated for v2. Thanks to @Mutisz!
-
ko locale was updated for v2. Kudos to @iamssen!
-
zh-TW locale was updated for v2. Credits go to @jackhsu978!
-
sk locale was updated for v2. Thank you, @mareksuscak!
-
ar-DZ locale was updated for v2. Kudos to @elshahat!
-
Added Persian (fa-IR) locale. Credits go to @mort3za!
-
Turkish (tr) locale was updated for v2. Thanks to group effort of @berkaey, @ikayar and @dbtek!
-
Danish (da) locale was updated for v2. Kudos to @MathiasKandelborg!
-
Belarusian (be) locale was updated for v2. Kudos to @alyrik!
-
Catalan (ca) locale was updated for v2. Credits go to @avizcaino!
-
Added Uighur locale (ug). Thanks to @abduwaly!
- Generate typings for
stepoption ofeachDayOfIntervalintroduced in v2.0.0-alpha.26 - Fix milliseconds aren't being detected after seconds/Unix timestamp.
- Fixed DST issue in
eachDayOfIntervalthat caused time in the days after DST change to have the shift as well. - Fix bug in Galician locale caused by incorrect usage of
getHoursinstead ofgetUTCHours.
- Build-efficient
lightFormatthat only supports the popular subset of tokens. See #1050. parseISOfunction that parses ISO 8601 strings. See #1023.- is locale is updated for v2 format. Kudos to @lamayg.
- pt locale is updated for v2 format. Kudos to @adrm.
-
BREAKING: now functions don't accept string arguments, but only numbers or dates. When a string is passed, it will result in an unexpected result (
Invalid Date,NaN, etc).From now on a string should be parsed using
parseISO(ISO 8601) orparse.In v1 we've used
new Date()to parse strings, but it resulted in many hard-to-track bugs caused by inconsistencies in different browsers. To address that we've implemented our ISO 8601 parser but that made library to significantly grow in size. To prevent inevitable bugs and keep the library tiny, we made this trade-off.See this post for more details.
// Before addDays('2016-01-01', 1) // After addDays(parseISO('2016-01-01'), 1)
-
BREAKING:
format,formatDistanceandformatDistanceStrictnow throwRangeErrorif one the passed arguments is invalid. It reflects behavior oftoISOStringand Intl API. See #1032. -
BREAKING:
nearestTomoved from argument tooptionsinroundToNearestMinutes. -
Update zh-CN locale to match the nation standard (GB/T 7408-2005). Kudos to @cubicwork!
- Fixed DST issue. See #972 and #992 for more details.
- Fixed grammar issue in the HU locale. See #1001 for more details. Kudos to @TwoDCube!
- Fixed typo in
defaultFormattingWidththat spread to a bunch of locales and caused I18n code to ignore this parameter. See #989. Kudos to @jsoref
- id locale was updated for v2. Credits go to @Imballinst!
- ro locale was updated for v2. Kudos to @aocneanu and @gandesc!
- Add
stepoption toeachDayOfIntervalinitially introduced in v1 branch (#487).
- Updated Swedish locale to better reflect how relative weekdays are spoken in Swedish. Thanks to @Neorth!
- New interval, month, and year helpers to fetch a list of all Saturdays and Sundays (weekends) for a given date interval.
eachWeekendOfIntervalis the handler function while the other two are wrapper functions. Kudos to @laekettavong!eachWeekendOfIntervaleachWeekendOfMontheachWeekendOfYear
- Fixed pt-BR translation. Kudos to @wregis!
- Removed ES6 'const' from bn locale. Thanks to @charliedavison.
- Fixed error in the
getUnixTimedocs. Kudos to @xkizer.
- Added ar-SA locale. Credits go to @dalwadani.
- Added new function
fromUnixTime. Thansk to @xkizer.
-
New
roundToNearestMinutesfunction. Kudos to @xkizer. -
gl locale. Thanks to @cocodinTech and @fidelpita.
-
et locale was updated for v2. Kudos to @priithansen again!
-
el locale was updated for v2. Credits go to @fanixk!
-
BREAKING: To use
D,DD,YY,YYYYtokens now you should setawareOfUnicodeTokens:format(Date.now(), 'YY', { awareOfUnicodeTokens: true }) //=> '86'
See: https://git.io/fxCyr
- Updated Afrikaans locale for v2. Kudos to @marnusw!
-
Approach to ECMAScript was reworked.
Previously to use ECMAScript Modules, you always had to import it from
esmsubmodule to enable tree-shaking:import { format } from 'date-fns/esm' import parse from 'date-fns/esm/parse' import { eo } from 'date-fns/esm/locale' import { addDays } from 'date-fns/esm/fp'
From now on you can use it without
esm:import { format } from 'date-fns' import parse from 'date-fns/parse' import { eo } from 'date-fns/locale' import { addDays } from 'date-fns/fp'
- ja locale was improved and updated for v2. Kudos to @ciscorn and @kudohamu!
- Fixed
formatRelativein the Spanish locale. - Fixed
ordinalnumberin the French locale. Kudos to @Lakston.
-
Added
getUnixTimefunction. Kudos to @Kingwl. -
New decade helpers. Thanks to @y-nk!
-
getDecade -
startOfDecade -
endOfDecade -
lastDayOfDecade
-
- Exclude
docs.jsonfrom the npm package. Kudos to @hawkrives.
-
he locale is updated for v2 format. Kudos to @Nirlah.
-
hu and lt locales. Thanks to @izifortune and pardoeryanair
-
bn locale. Kudos to @nutboltu and @touhidrahman.
-
it locale is updated for v2 format. Thanks to @vin-car
-
vi locale is updated for v2 format. Kudos to @lihop and @trongthanh.
-
fi locale is updated for v2 format. Kudos to @sjuvonen.
- th locale is updated for v2 format. Kudos to @nodtem66.
-
PR #823. Changes to the following locales:
- de
- es
- fr
- nb
- nl
- pt-BR
- ru
- sv
- th
- uk
- zh-CN
to fix bugs uncovered by recent change in
parsebehavior introduced by PR #821.
- BREAKING: In
parse, return Invalid Date if there is any remaining non-whitespace input. See issue #819
- Export nl locale in
date-fns/locale/index.js
-
BREAKING:
parsenow validates separate date and time values, and prevents nonexistent dates.parse('13/32/2018', 'MM/dd/yyyy', new Date()) //=> Invalid Date
-
nl locale is updated for v2 format. Thanks to the teamwork of @curry684 and @stefanvermaas!
- Fix the format of abbreviated months in German locale. See PR #817 and commit ff33cc8. Kudos to @Philipp91
-
BREAKING:
toDatenow validates separate date and time values in ISO-8601 strings and returnsInvalid Dateif the date is invalid.toDate('2018-13-32') //=> Invalid Date
-
es locale is updated for v2 format. Kudos to @YagoCarballo.
-
pt-BR locale is updated for v2 format. Thanks to @YagoCarballo again!
- Fix spelling of month in Swedish locale. See PR #801. Thanks to @limelights
- fr locale is updated for v2 format. Kudos to @Lakston.
- zh-CN locale is updated for v2 format. Kudos to @cubicwork.
- Added
eachWeekOfInterval, the weekly equivalent ofeachDayOfInterval. Thanks to @xkizer
- Fix a few bugs that appear in timezones with offsets that include seconds (e.g. GMT+00:57:44). See PR #789.
- de locale is updated for v2 format. Kudos to @pex.
- uk locale is updated for v2 format. Kudos to @shcherbyakdev.
- BREAKING: Refine the way arguments are processed:
-
Convert number arguments into integer number using a custom
toIntegerimplementation -
Change null/undefined/true/false handling strategy:
- For required arguments:
date number string boolean 0 new Date(0) 0 '0' false '0' Invalid Date 0 '0' false 1 new Date(1) 1 '1' true '1' Invalid Date 1 '1' true true Invalid Date NaN 'true' true false Invalid Date NaN 'false' false null Invalid Date NaN 'null' false undefined Invalid Date NaN 'undefined' false NaN Invalid Date NaN 'NaN' false - For optional arguments, null and undefined are treated as if argument is not provided
-
isDateis added back. The new version of the function works correctly with dates passed across iframes.
- BREAKING:
toDatenow doesn't fall back tonew Dateconstructor if it fails to parse a string argument. Instead, it returnsInvalid Date. - sv locale is updated for v2 format. Kudos to @alexandernanberg.
- nb locale is updated for v2 format. Kudos to @dagstuan.
-
New locale-dependent week-numbering year helpers:
getWeekgetWeekYearsetWeeksetWeekYearstartOfWeekYear
-
BREAKING: new API for locales. See docs/i18nContributionGuide.md for more details.
-
BREAKING: temporary disable all locales except
en-US,ruandeo. Most of the disabled locales will be enabled back until the release. -
BREAKING: new format string API for
formatfunction which is based on Unicode Technical Standard #35:Unit Pattern Result examples Era G..GGG AD, BC GGGG Anno Domini, Before Christ GGGGG A, B Calendar year y 44, 1, 1900, 2017 yo 44th, 1st, 0th, 17th yy 44, 01, 00, 17 yyy 044, 001, 1900, 2017 yyyy 0044, 0001, 1900, 2017 yyyyy ... Local week-numbering year Y 44, 1, 1900, 2017 Yo 44th, 1st, 1900th, 2017th YY 44, 01, 00, 17 YYY 044, 001, 1900, 2017 YYYY 0044, 0001, 1900, 2017 YYYYY ... ISO week-numbering year R -43, 0, 1, 1900, 2017 RR -43, 00, 01, 1900, 2017 RRR -043, 000, 001, 1900, 2017 RRRR -0043, 0000, 0001, 1900, 2017 RRRRR ... Extended year u -43, 0, 1, 1900, 2017 uu -43, 01, 1900, 2017 uuu -043, 001, 1900, 2017 uuuu -0043, 0001, 1900, 2017 uuuuu ... Quarter (formatting) Q 1, 2, 3, 4 Qo 1st, 2nd, 3rd, 4th QQ 01, 02, 03, 04 QQQ Q1, Q2, Q3, Q4 QQQQ 1st quarter, 2nd quarter, ... QQQQQ 1, 2, 3, 4 Quarter (stand-alone) q 1, 2, 3, 4 qo 1st, 2nd, 3rd, 4th qq 01, 02, 03, 04 qqq Q1, Q2, Q3, Q4 qqqq 1st quarter, 2nd quarter, ... qqqqq 1, 2, 3, 4 Month (formatting) M 1, 2, ..., 12 Mo 1st, 2nd, ..., 12th MM 01, 02, ..., 12 MMM Jan, Feb, ..., Dec MMMM January, February, ..., December MMMMM J, F, ..., D Month (stand-alone) L 1, 2, ..., 12 Lo 1st, 2nd, ..., 12th LL 01, 02, ..., 12 LLL Jan, Feb, ..., Dec LLLL January, February, ..., December LLLLL J, F, ..., D Local week of year w 1, 2, ..., 53 wo 1st, 2nd, ..., 53th ww 01, 02, ..., 53 ISO week of year I 1, 2, ..., 53 Io 1st, 2nd, ..., 53th II 01, 02, ..., 53 Day of month d 1, 2, ..., 31 do 1st, 2nd, ..., 31st dd 01, 02, ..., 31 Day of year D 1, 2, ..., 365, 366 Do 1st, 2nd, ..., 365th, 366th DD 01, 02, ..., 365, 366 DDD 001, 002, ..., 365, 366 DDDD ... Day of week (formatting) E..EEE Mon, Tue, Wed, ..., Su EEEE Monday, Tuesday, ..., Sunday EEEEE M, T, W, T, F, S, S EEEEEE Mo, Tu, We, Th, Fr, Su, Sa ISO day of week (formatting) i 1, 2, 3, ..., 7 io 1st, 2nd, ..., 7th ii 01, 02, ..., 07 iii Mon, Tue, Wed, ..., Su iiii Monday, Tuesday, ..., Sunday iiiii M, T, W, T, F, S, S iiiiii Mo, Tu, We, Th, Fr, Su, Sa Local day of week (formatting) e 2, 3, 4, ..., 1 eo 2nd, 3rd, ..., 1st ee 02, 03, ..., 01 eee Mon, Tue, Wed, ..., Su eeee Monday, Tuesday, ..., Sunday eeeee M, T, W, T, F, S, S eeeeee Mo, Tu, We, Th, Fr, Su, Sa Local day of week (stand-alone) c 2, 3, 4, ..., 1 co 2nd, 3rd, ..., 1st cc 02, 03, ..., 01 ccc Mon, Tue, Wed, ..., Su cccc Monday, Tuesday, ..., Sunday ccccc M, T, W, T, F, S, S cccccc Mo, Tu, We, Th, Fr, Su, Sa AM, PM a..aaa AM, PM aaaa a.m., p.m. aaaaa a, p AM, PM, noon, midnight b..bbb AM, PM, noon, midnight bbbb a.m., p.m., noon, midnight bbbbb a, p, n, mi Flexible day period B..BBB at night, in the morning, ... BBBB at night, in the morning, ... BBBBB at night, in the morning, ... Hour [1-12] h 1, 2, ..., 11, 12 ho 1st, 2nd, ..., 11th, 12th hh 01, 02, ..., 11, 12 Hour [0-23] H 0, 1, 2, ..., 23 Ho 0th, 1st, 2nd, ..., 23rd HH 00, 01, 02, ..., 23 Hour [0-11] K 1, 2, ..., 11, 0 Ko 1st, 2nd, ..., 11th, 0th KK 1, 2, ..., 11, 0 Hour [1-24] k 24, 1, 2, ..., 23 ko 24th, 1st, 2nd, ..., 23rd kk 24, 01, 02, ..., 23 Minute m 0, 1, ..., 59 mo 0th, 1st, ..., 59th mm 00, 01, ..., 59 Second s 0, 1, ..., 59 so 0th, 1st, ..., 59th ss 00, 01, ..., 59 Fraction of second S 0, 1, ..., 9 SS 00, 01, ..., 99 SSS 000, 0001, ..., 999 SSSS ... Timezone (ISO-8601 w/ Z) X -08, +0530, Z XX -0800, +0530, Z XXX -08:00, +05:30, Z XXXX -0800, +0530, Z, +123456 XXXXX -08:00, +05:30, Z, +12:34:56 Timezone (ISO-8601 w/o Z) x -08, +0530, +00 xx -0800, +0530, +0000 xxx -08:00, +05:30, +00:00 xxxx -0800, +0530, +0000, +123456 xxxxx -08:00, +05:30, +00:00, +12:34:56 Timezone (GMT) O...OOO GMT-8, GMT+5:30, GMT+0 OOOO GMT-08:00, GMT+05:30, GMT+00:00 Timezone (specific non-locat.) z...zzz GMT-8, GMT+5:30, GMT+0 zzzz GMT-08:00, GMT+05:30, GMT+00:00 Seconds timestamp t 512969520 tt ... Milliseconds timestamp T 512969520900 TT ... Long localized date P 5/29/53 PP May 29, 1453 PPP May 29th, 1453 PPPP Sunday, May 29th, 1453 Long localized time p 12:00 AM pp 12:00:00 AM ppp 12:00:00 AM GMT+2 pppp 12:00:00 AM GMT+02:00 Combination of date and time Pp 5/29/53, 12:00 AM PPpp May 29, 1453, 12:00 AM PPPppp May 29th, 1453 at ... PPPPpppp Sunday, May 29th, 1453 at ... Characters are now escaped using single quote symbols (
') instead of square brackets. -
BREAKING: new format string API for
parsefunction:Unit Pattern Result examples Era G..GGG AD, BC GGGG Anno Domini, Before Christ GGGGG A, B Calendar year y 44, 1, 1900, 2017, 9999 yo 44th, 1st, 1900th, 9999999th yy 44, 01, 00, 17 yyy 044, 001, 123, 999 yyyy 0044, 0001, 1900, 2017 yyyyy ... Local week-numbering year Y 44, 1, 1900, 2017, 9000 Yo 44th, 1st, 1900th, 9999999th YY 44, 01, 00, 17 YYY 044, 001, 123, 999 YYYY 0044, 0001, 1900, 2017 YYYYY ... ISO week-numbering year R -43, 1, 1900, 2017, 9999, -9999 RR -43, 01, 00, 17 RRR -043, 001, 123, 999, -999 RRRR -0043, 0001, 2017, 9999, -9999 RRRRR ... Extended year u -43, 1, 1900, 2017, 9999, -999 uu -43, 01, 99, -99 uuu -043, 001, 123, 999, -999 uuuu -0043, 0001, 2017, 9999, -9999 uuuuu ... Quarter (formatting) Q 1, 2, 3, 4 Qo 1st, 2nd, 3rd, 4th QQ 01, 02, 03, 04 QQQ Q1, Q2, Q3, Q4 QQQQ 1st quarter, 2nd quarter, ... QQQQQ 1, 2, 3, 4 Quarter (stand-alone) q 1, 2, 3, 4 qo 1st, 2nd, 3rd, 4th qq 01, 02, 03, 04 qqq Q1, Q2, Q3, Q4 qqqq 1st quarter, 2nd quarter, ... qqqqq 1, 2, 3, 4 Month (formatting) M 1, 2, ..., 12 Mo 1st, 2nd, ..., 12th MM 01, 02, ..., 12 MMM Jan, Feb, ..., Dec MMMM January, February, ..., December MMMMM J, F, ..., D Month (stand-alone) L 1, 2, ..., 12 Lo 1st, 2nd, ..., 12th LL 01, 02, ..., 12 LLL Jan, Feb, ..., Dec LLLL January, February, ..., December LLLLL J, F, ..., D Local week of year w 1, 2, ..., 53 wo 1st, 2nd, ..., 53th ww 01, 02, ..., 53 ISO week of year I 1, 2, ..., 53 Io 1st, 2nd, ..., 53th II 01, 02, ..., 53 Day of month d 1, 2, ..., 31 do 1st, 2nd, ..., 31st dd 01, 02, ..., 31 Day of year D 1, 2, ..., 365, 366 Do 1st, 2nd, ..., 365th, 366th DD 01, 02, ..., 365, 366 DDD 001, 002, ..., 365, 366 DDDD ... Day of week (formatting) E..EEE Mon, Tue, Wed, ..., Su EEEE Monday, Tuesday, ..., Sunday EEEEE M, T, W, T, F, S, S EEEEEE Mo, Tu, We, Th, Fr, Su, Sa ISO day of week (formatting) i 1, 2, 3, ..., 7 io 1st, 2nd, ..., 7th ii 01, 02, ..., 07 iii Mon, Tue, Wed, ..., Su iiii Monday, Tuesday, ..., Sunday iiiii M, T, W, T, F, S, S iiiiii Mo, Tu, We, Th, Fr, Su, Sa Local day of week (formatting) e 2, 3, 4, ..., 1 eo 2nd, 3rd, ..., 1st ee 02, 03, ..., 01 eee Mon, Tue, Wed, ..., Su eeee Monday, Tuesday, ..., Sunday eeeee M, T, W, T, F, S, S eeeeee Mo, Tu, We, Th, Fr, Su, Sa Local day of week (stand-alone) c 2, 3, 4, ..., 1 co 2nd, 3rd, ..., 1st cc 02, 03, ..., 01 ccc Mon, Tue, Wed, ..., Su cccc Monday, Tuesday, ..., Sunday ccccc M, T, W, T, F, S, S cccccc Mo, Tu, We, Th, Fr, Su, Sa AM, PM a..aaa AM, PM aaaa a.m., p.m. aaaaa a, p AM, PM, noon, midnight b..bbb AM, PM, noon, midnight bbbb a.m., p.m., noon, midnight bbbbb a, p, n, mi Flexible day period B..BBB at night, in the morning, ... BBBB at night, in the morning, ... BBBBB at night, in the morning, ... Hour [1-12] h 1, 2, ..., 11, 12 ho 1st, 2nd, ..., 11th, 12th hh 01, 02, ..., 11, 12 Hour [0-23] H 0, 1, 2, ..., 23 Ho 0th, 1st, 2nd, ..., 23rd HH 00, 01, 02, ..., 23 Hour [0-11] K 1, 2, ..., 11, 0 Ko 1st, 2nd, ..., 11th, 0th KK 1, 2, ..., 11, 0 Hour [1-24] k 24, 1, 2, ..., 23 ko 24th, 1st, 2nd, ..., 23rd kk 24, 01, 02, ..., 23 Minute m 0, 1, ..., 59 mo 0th, 1st, ..., 59th mm 00, 01, ..., 59 Second s 0, 1, ..., 59 so 0th, 1st, ..., 59th ss 00, 01, ..., 59 Fraction of second S 0, 1, ..., 9 SS 00, 01, ..., 99 SSS 000, 0001, ..., 999 SSSS ... Timezone (ISO-8601 w/ Z) X -08, +0530, Z XX -0800, +0530, Z XXX -08:00, +05:30, Z XXXX -0800, +0530, Z, +123456 XXXXX -08:00, +05:30, Z, +12:34:56 Timezone (ISO-8601 w/o Z) x -08, +0530, +00 xx -0800, +0530, +0000 xxx -08:00, +05:30, +00:00 xxxx -0800, +0530, +0000, +123456 xxxxx -08:00, +05:30, +00:00, +12:34:56 Seconds timestamp t 512969520 tt ... Milliseconds timestamp T 512969520900 TT ... Characters are now escaped using single quote symbols (
') instead of square brackets. -
BREAKING:
unitoption informatDistanceStrictfunction now takes one of the strings: 'second', 'minute', 'hour', 'day', 'month' or 'year' instead of 's', 'm', 'h', 'd', 'M' or 'Y'
-
Fix the
toDatebug occurring when parsing ISO-8601 style dates (but not valid ISO format) with a trailing Z (e.g2012-01Z), it returned Invalid Date for FireFox/IE11 #510 -
Fix
differenceIn...functions returning negative zero in some cases: #692
-
Support for long and relative formats for German locale (thanks to @vanvuongngo).
-
fr-CH locale (kudos to @vanvuongngo).
-
Support for long and relative formats for Swedish locale (thanks to @alexandernanberg).
v2.0.0-alpha.5 was incorrectly released, v2.0.0-alpha.6 fixes the problem.
- en-GB locale (kudos to @glintik)
- Flow typings for
index.js,fp/index.js,locale/index.js, and their ESM equivalents. See PR #558
-
BREAKING:
nullnow is not a valid date.isValid(null)returnsfalse;toDate(null)returns an invalid date. SincetoDateis used internally by all the functions, operations overnullwill also return an invalid date. See #537 for the reasoning. -
toDate(previouslyparse) andisValidfunctions now acceptanytype as the first argument.
- Fixes Spanish locale (kudos to @harogaston)
-
Ukrainian locale (ua) (thanks to Andrii Korzh @korzhyk)
-
Vietnamese locale (vi) (kudos to @trongthanh)
- BREAKING: all functions now check if the passed number of arguments is less
than the number of required arguments and throw
TypeErrorexception if so.