Zum Hauptinhalt springen

Intl.DateTimeFormat (ESNext)

Inoffizielle Beta-Übersetzung

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

npm Version size

Vorsicht

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.

Vorsicht

Dieses Polyfill unterstützt derzeit Sommerzeitumstellungen bis 2100, um die Datensatzgröße zu reduzieren.

Funktionen

Installation

npm i @formatjs/intl-datetimeformat

Anforderungen

Dieses Paket erfordert folgende Funktionen:

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.