date-time-format-timezone

    1.0.22 • Public • Published

    Intl.DateTimeFormat timezone polyfill

    Surgically polyfills timezone support in Intl.DateTimeFormat API

    Build Status NPMRel

    Some browsers do not support arbitrary time zone in Intl.DateTimeFormat API (becuase its optional as per ECMA-402 standard). This polyfill is only to bring this support. Polyfill contains historical timezone data, CLDR data & tiny code to polyfill this support.

    How to use?

    1. Install via nodejs:
    npm i date-time-format-timezone
    

    And then import in your code:

    require('date-time-format-timezone'); // polyfill is ready
    
    1. In the browser

    include everything:

    <script src="https://unpkg.com/date-time-format-timezone@latest/build/browserified/date-time-format-timezone-complete-min.js">
    

    or include individual files:

    <script src="https://unpkg.com/date-time-format-timezone@latest/build/browserified/date-time-format-timezone-no-data-min.js">
    <script src="https://unpkg.com/date-time-format-timezone@latest/build/browserified/data/locales/locale-en-US-POSIX.js">
    <script src="https://unpkg.com/date-time-format-timezone@latest/build/browserified/data/metazone.js">
    <script src="https://unpkg.com/date-time-format-timezone@latest/build/browserified/data/timezones/tzdata-america-los_angeles.js">
    

    This polyfill can add this support.

    new Intl.DateTimeFormat('hi', {
        timeZone: 'Asia/Calcutta',
        timeZoneName:'long',
        year: 'numeric',
        month: 'numeric',
        day: 'numeric',
        hour: 'numeric',
        minute: 'numeric',
    }).format(new Date());
     
    "११/१/२०१७, पू १:२६ भारतीय मानक समय"
     
     
    new Intl.DateTimeFormat('en', {
        timeZone: 'America/Los_Angeles',
        timeZoneName:'long',
        year: 'numeric',
        month: 'numeric',
        day: 'numeric',
        hour: 'numeric',
        minute: 'numeric',
    }).format(new Date());
     
    "1/10/2017, 12:00 PM Pacific Standard Time"

    Support

    API Support
    Intl.DateTimeFormat
    Date.toLocaleString
    Date.toLocaleTimeString
    Date.toLocaleTimeString

    Generate latest data from www.iana.org.

    git checkout https://github.com/yahoo/date-time-format-timezone.git
    npm install
    grunt download
    grunt
    npm publish
    

    Browserified file size

    Minified gzipped
    complete 2.64MB 322KB
    top zones1 only no locale 369.32KB 71KB
    all zones no locale 303.19KB 75KB
    top zones1 top locale2 641.86KB 148KB

    *1. top zones are custom listed timezones here.

    *2. top locales are custom listed locales here.

    References

    1. http://www.unicode.org/reports/tr35/tr35-dates.html#Using_Time_Zone_Names
    2. http://icu-project.org/apiref/icu4j/com/ibm/icu/text/TimeZoneNames.html

    Install

    npm i date-time-format-timezone

    DownloadsWeekly Downloads

    32,650

    Version

    1.0.22

    License

    BSD-3-Clause

    Unpacked Size

    24.5 MB

    Total Files

    1805

    Last publish

    Collaborators

    • davglass
    • jlecomte
    • juandopazo
    • markandey