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
addBusinessDays
anddifferenceInBusinessDays
. 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
&max
functions now returnInvalid Date
for 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 BC
and1 AD
instead of10 BC
and10 AD
. -
BREAKING: from now on
parse
validates 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-functions
to 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-literals
to 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
const
usage that broke UglifyJS.
-
Add constants that can be imported directly from
date-fns
or the submoduledate-fns/constants
:-
maxTime
-
minTime
Thanks to @cmatiello!
-
-
Add p+ token support to parse function. Credits go to @ericreis.
-
Add new function
differenceInBusinessDays
which calculates the difference in business days. Kudos to @ThorrStevens! -
Add new function
addBusinessDays
, similar toaddDays
but ignoring weekends. Thanks to @ThorrStevens! -
Restore now-dependent functions that initially were removed in v2:
formatDistanceToNow
isFuture
isPast
endOfToday
endOfTomorrow
endOfYesterday
startOfToday
startOfTomorrow
startOfYesterday
isToday
isTomorrow
isYesterday
isThisSecond
isThisMinute
isThisHour
isThisWeek
isThisISOWeek
isThisMonth
isThisQuarter
isThisYear
isThisISOYear
- 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
parseISO
when the passed string contains a colon. Kudos to @stefanprobst. -
Add
locale
to options definition to all functions that acceptweekStartsOn
(see #1159).
-
BREAKING:
format
,lightFormat
andparse
now will throw aRangeError
exception 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
awareOfUnicodeTokens
option is removed fromformat
andparse
. It is replaced with optionsuseAdditionalWeekYearTokens
for unlockingYY
andYYYY
tokens anduseAdditionalDayOfYearTokens
forD
andDD
.format(new Date(), 'YY', { useAdditionalWeekYearTokens: true }) //=> '86' format(new Date(), 'D', { useAdditionalDayOfYearTokens: true }) //=> '364'
-
BREAKING: Treat invalid time as
Invalid Date
inparseISO
. Kudos to @stefanprobst. -
Updated
formatLong
for 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
formatDistance
withaddSuffix
option. Kudos to @kudohamu! -
Improve
ordinalNumber
function 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
step
option ofeachDayOfInterval
introduced in v2.0.0-alpha.26 - Fix milliseconds aren't being detected after seconds/Unix timestamp.
- Fixed DST issue in
eachDayOfInterval
that caused time in the days after DST change to have the shift as well. - Fix bug in Galician locale caused by incorrect usage of
getHours
instead ofgetUTCHours
.
- Build-efficient
lightFormat
that only supports the popular subset of tokens. See #1050. parseISO
function 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
,formatDistance
andformatDistanceStrict
now throwRangeError
if one the passed arguments is invalid. It reflects behavior oftoISOString
and Intl API. See #1032. -
BREAKING:
nearestTo
moved from argument tooptions
inroundToNearestMinutes
. -
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
defaultFormattingWidth
that 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
step
option toeachDayOfInterval
initially 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.
eachWeekendOfInterval
is the handler function while the other two are wrapper functions. Kudos to @laekettavong!eachWeekendOfInterval
eachWeekendOfMonth
eachWeekendOfYear
- Fixed pt-BR translation. Kudos to @wregis!
- Removed ES6 'const' from bn locale. Thanks to @charliedavison.
- Fixed error in the
getUnixTime
docs. Kudos to @xkizer.
- Added ar-SA locale. Credits go to @dalwadani.
- Added new function
fromUnixTime
. Thansk to @xkizer.
-
New
roundToNearestMinutes
function. 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
,YYYY
tokens 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
esm
submodule 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
formatRelative
in the Spanish locale. - Fixed
ordinalnumber
in the French locale. Kudos to @Lakston.
-
Added
getUnixTime
function. Kudos to @Kingwl. -
New decade helpers. Thanks to @y-nk!
-
getDecade
-
startOfDecade
-
endOfDecade
-
lastDayOfDecade
-
- Exclude
docs.json
from 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
parse
behavior 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:
parse
now 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:
toDate
now validates separate date and time values in ISO-8601 strings and returnsInvalid Date
if 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
toInteger
implementation -
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
-
isDate
is added back. The new version of the function works correctly with dates passed across iframes.
- BREAKING:
toDate
now doesn't fall back tonew Date
constructor 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:
getWeek
getWeekYear
setWeek
setWeekYear
startOfWeekYear
-
BREAKING: new API for locales. See docs/i18nContributionGuide.md for more details.
-
BREAKING: temporary disable all locales except
en-US
,ru
andeo
. Most of the disabled locales will be enabled back until the release. -
BREAKING: new format string API for
format
function 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
parse
function: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:
unit
option informatDistanceStrict
function now takes one of the strings: 'second', 'minute', 'hour', 'day', 'month' or 'year' instead of 's', 'm', 'h', 'd', 'M' or 'Y'
-
Fix the
toDate
bug 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:
null
now is not a valid date.isValid(null)
returnsfalse
;toDate(null)
returns an invalid date. SincetoDate
is used internally by all the functions, operations overnull
will also return an invalid date. See #537 for the reasoning. -
toDate
(previouslyparse
) andisValid
functions now acceptany
type 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
TypeError
exception if so.