Intl.DateTimeFormat (ESNext)
Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →
Ein spezifikationskonformes Polyfill für Intl.DateTimeFormat, vollständig getestet durch die offizielle ECMAScript-Konformitätstest-Suite
Derzeit unterstützt dieses Polyfill nur den gregorianischen Kalender. Daher empfehlen wir, in Ihren Optionen calendar: 'gregory' zu setzen, um auf der sicheren Seite zu sein.
Dieses Polyfill unterstützt derzeit Sommerzeitumstellungen bis 2100, um die Datensatzgröße zu reduzieren.
Funktionen
Installation
- npm
- yarn
npm i @formatjs/intl-datetimeformat
yarn add @formatjs/intl-datetimeformat
Anforderungen
Dieses Paket erfordert folgende Funktionen:
-
Intl.Localeoder Polyfill.
Verwendung
Über polyfill-fastly.io
Sie können den polyfill-fastly.io URL Builder verwenden, um ein Polyfill-Script-Tag für Intl.DateTimeFormat zu erstellen. Standardmäßig enthält die erstellte URL keine Lokalisierungsdaten. Um Lokalisierungsdaten hinzuzufügen, ergänzen Sie Intl.DateTimeFormat.~locale.<locale> sowie die Lokalisierungsdaten für alle erforderlichen Polyfills zu Ihrer Feature-Liste. Beispiel:
<!-- Polyfill Intl.DateTimeFormat, its dependencies & `en` locale data -->
<script src="https://polyfill-fastly.io/v3/polyfill.min.js?features=Intl.DateTimeFormat,Intl.DateTimeFormat.~locale.en,Intl.NumberFormat.~locale.en"></script>
Einfach
import '@formatjs/intl-datetimeformat/polyfill'
import '@formatjs/intl-datetimeformat/locale-data/en' // locale-data for en
import '@formatjs/intl-datetimeformat/add-all-tz' // Add ALL tz data
Dynamischer Import + Funktionserkennung
import {shouldPolyfill} from '@formatjs/intl-datetimeformat/should-polyfill'
async function polyfill(locale: string) {
const unsupportedLocale = shouldPolyfill(locale)
// This locale is supported
if (!unsupportedLocale) {
return
}
// Load the polyfill 1st BEFORE loading data
await import('@formatjs/intl-datetimeformat/polyfill-force')
// Parallelize CLDR data loading
const dataPolyfills = [
import('@formatjs/intl-datetimeformat/add-all-tz'),
import(`@formatjs/intl-datetimeformat/locale-data/${unsupportedLocale}`),
]
await Promise.all(dataPolyfills)
}
Hinzufügen der IANA-Zeitzonendatenbank
Wir bieten zwei vorverarbeitete IANA-Zeitzonen an:
Vollständig: Enthält ALLE Zeitzonen der IANA-Datenbank
import '@formatjs/intl-datetimeformat/polyfill'
import '@formatjs/intl-datetimeformat/add-all-tz'
Golden: Enthält populäre Zeitzonen aus der IANA-Datenbank
import '@formatjs/intl-datetimeformat/polyfill'
import '@formatjs/intl-datetimeformat/add-golden-tz'
Standardzeitzone
Da JavaScript-Engines die Standardzeitzone nicht offenlegen, gibt es derzeit keine Möglichkeit, die lokale Zeitzone eines Browsers zu ermitteln. Daher ist die Standardzeitzone in diesem Polyfill UTC.
Sie können dies ändern, indem Sie entweder __setDefaultTimeZone aufrufen oder stets explizit die timeZone-Option für genaue Datums- und Zeitberechnungen übergeben.
Da __setDefaultTimeZone nicht im Standard enthalten ist, sollten Sie vor dem Aufruf dessen Existenz prüfen - und zwar nachdem die Zeitzonendaten geladen wurden, z.B.:
import '@formatjs/intl-datetimeformat/polyfill'
import '@formatjs/intl-datetimeformat/add-all-tz.js'
if ('__setDefaultTimeZone' in Intl.DateTimeFormat) {
Intl.DateTimeFormat.__setDefaultTimeZone('America/Los_Angeles')
}
Tests
Diese Bibliothek ist vollständig test262-konform.