date-time-format-timezone

Surgically polyfills timezone support in Intl.DateTimeFormat API

Github stars Tracking Chart

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-time-zone-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

Main metrics

Overview
Name With Ownerformatjs/date-time-format-timezone
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 2)
Platform
License:Other
所有者活动
Created At2017-01-13 16:29:07
Pushed At2020-02-26 23:20:09
Last Commit At2020-02-26 15:20:08
Release Count0
用户参与
Stargazers Count108
Watchers Count8
Fork Count20
Commits Count58
Has Issues Enabled
Issues Count21
Issue Open Count11
Pull Requests Count21
Pull Requests Open Count0
Pull Requests Close Count5
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private