Skip to content

Instantly share code, notes, and snippets.

@kossnocorp
Last active October 19, 2020 11:33
Show Gist options
  • Save kossnocorp/a307a464760b405bb78ef5020a4ab136 to your computer and use it in GitHub Desktop.
Save kossnocorp/a307a464760b405bb78ef5020a4ab136 to your computer and use it in GitHub Desktop.
date-fns v2 pre-releases change log

v2 Pre-Releases Change Log

This change log lists pre-release versions and changes made since v2.0.0-alpha.1.

v2.0.0

Changed

v2.0.0-beta.5

Changed

Added

v2.0.0-beta.4

Fixed

Changed

  • BREAKING: min & max functions now return Invalid Date for all invalid inputs. See PR and issue. Credits go to @diiorio.

Added

v2.0.0-beta.3

Added

v2.0.0-beta.2

Fixed

v2.0.0-beta.1

Fixed

  • 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'.

Changed

v2.0.0-alpha.37

Fixed

  • Fix Czech (cs) locale:

    • Add months in genitive to format.

    • Add weekdays in accusative to formatRelative.

    • Enable the locale.

v2.0.0-alpha.36

Fixed

v2.0.0-alpha.35

Fixed

v2.0.0-alpha.34

Changed

Added

v2.0.0-alpha.33

Fixed

v2.0.0-alpha.32

Added

v2.0.0-alpha.31

Fixed

  • 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).

v2.0.0-alpha.29

Fixed

Changed

Added

v2.0.0-alpha.27

Fixed

  • Generate typings for step option of eachDayOfInterval 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 of getUTCHours.

Added

Changed

  • 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) or parse.

    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 and formatDistanceStrict now throw RangeError if one the passed arguments is invalid. It reflects behavior of toISOString and Intl API. See #1032.

  • BREAKING: nearestTo moved from argument to options in roundToNearestMinutes.

  • Update zh-CN locale to match the nation standard (GB/T 7408-2005). Kudos to @cubicwork!

v2.0.0-alpha.26

Fixed

Added

Changed

v2.0.0-alpha.25

Added

  • 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

v2.0.0-alpha.24

Fixed

Added

v2.0.0-alpha.23

Fixed

Added

v2.0.0-alpha.22

Changed

  • BREAKING: To use D, DD, YY, YYYY tokens now you should set awareOfUnicodeTokens:

    format(Date.now(), 'YY', { awareOfUnicodeTokens: true })
    //=> '86'

    See: https://git.io/fxCyr

Added

v2.0.0-alpha.21

Changed

  • 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'

Added

Fixed

v2.0.0-alpha.20

Added

Changed

v2.0.0-alpha.19

⚠️ The release got failed.

v2.0.0-alpha.18

Added

v2.0.0-alpha.17

⚠️ The release got failed.

v2.0.0-alpha.16

Added

Fixed

  • 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.

v2.0.0-alpha.15

Changed

  • BREAKING: In parse, return Invalid Date if there is any remaining non-whitespace input. See issue #819

v2.0.0-alpha.14

Fixed

  • Export nl locale in date-fns/locale/index.js

v2.0.0-alpha.13

Changed

  • 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!

Fixed

  • Fix the format of abbreviated months in German locale. See PR #817 and commit ff33cc8. Kudos to @Philipp91

v2.0.0-alpha.12

Changed

  • BREAKING: toDate now validates separate date and time values in ISO-8601 strings and returns Invalid Date if the date is invalid.

    toDate('2018-13-32')
    //=> Invalid Date

Added

Fixed

  • Fix spelling of month in Swedish locale. See PR #801. Thanks to @limelights

v2.0.0-alpha.11

Added

Fixed

  • Fix a few bugs that appear in timezones with offsets that include seconds (e.g. GMT+00:57:44). See PR #789.

v2.0.0-alpha.10

Changed

  • 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

v2.0.0-alpha.9

Added

  • isDate is added back. The new version of the function works correctly with dates passed across iframes.

Changed

v2.0.0-alpha.8

Added

  • New locale-dependent week-numbering year helpers:

    • getWeek
    • getWeekYear
    • setWeek
    • setWeekYear
    • startOfWeekYear

Changed

  • BREAKING: new API for locales. See docs/i18nContributionGuide.md for more details.

  • BREAKING: temporary disable all locales except en-US, ru and eo. 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 in formatDistanceStrict function now takes one of the strings: 'second', 'minute', 'hour', 'day', 'month' or 'year' instead of 's', 'm', 'h', 'd', 'M' or 'Y'

Fixed

  • Fix the toDate bug occurring when parsing ISO-8601 style dates (but not valid ISO format) with a trailing Z (e.g 2012-01Z), it returned Invalid Date for FireFox/IE11 #510

  • Fix differenceIn... functions returning negative zero in some cases: #692

v2.0.0-alpha.7

Added

v2.0.0-alpha.6

v2.0.0-alpha.5 was incorrectly released, v2.0.0-alpha.6 fixes the problem.

v2.0.0-alpha.5

Added

v2.0.0-alpha.4

Added

  • Flow typings for index.js, fp/index.js, locale/index.js, and their ESM equivalents. See PR #558

v2.0.0-alpha.3

Fixed

Changed

  • BREAKING: null now is not a valid date. isValid(null) returns false; toDate(null) returns an invalid date. Since toDate is used internally by all the functions, operations over null will also return an invalid date. See #537 for the reasoning.

  • toDate (previously parse) and isValid functions now accept any type as the first argument.

v2.0.0-alpha.2

Fixed

Added

Changed

  • 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment