JavaScript-Date-Playground
Tippe einen JavaScript-Date-Ausdruck und erkunde jedes Ausgabeformat und jede Eigenschaft in Echtzeit — toISOString, toString, getTime, getFullYear und mehr.
JavaScript Expression
Type any expression that returns a Date or number.
Das JavaScript-Date-Objekt
Das in JavaScript integrierte Date-Objekt speichert die Zeit intern als Anzahl der Millisekunden seit der Unix-Epoche (1. Januar 1970 00:00:00 UTC). Jede Date-Instanz ist letztlich nur diese eine ganze Zahl. Die verschiedenen Methoden — toISOString(), toString(), toLocaleString() — sind unterschiedliche Arten, denselben zugrunde liegenden Wert darzustellen.
Häufige Fallstricke beim Umgang mit JavaScript-Daten
Mehrere Verhaltensweisen von JavaScript Date bringen selbst erfahrene Entwickler ins Stolpern:
- Monate sind nullbasiert: Januar ist 0, Dezember ist 11 — beim Anzeigen immer 1 addieren
- new Date('2024-01-01') wird als UTC-Mitternacht interpretiert; new Date('2024/01/01') als lokale Mitternacht
- new Date(2024, 0, 1) erstellt den 1. Januar 2024 in lokaler Zeit (Monat ist nullbasiert)
- Date.now() liefert Millisekunden; Math.floor(Date.now() / 1000) ergibt Unix-Sekunden
- Vermeide es, Tage durch Addieren von 86400000ms hinzuzufügen — wegen DST kann das auf der falschen Zeit landen
Mit Zeitzonen in JavaScript arbeiten
Das Date-Objekt von JavaScript hat keine Zeitzoneneigenschaft — es wird immer in UTC gespeichert. Zeitzonenumrechnungen werden beim Anzeigen mit der Intl.DateTimeFormat-API durchgeführt.
- new Intl.DateTimeFormat('en-US', { timeZone: 'Asia/Tokyo', dateStyle: 'full', timeStyle: 'long' }).format(date)
- date.toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' })
- new Intl.DateTimeFormat('en-CA', { timeZone: tz }).formatToParts(date) — liefert einzelne Bestandteile für benutzerdefinierte Formatierung
Die Playground-Ausgabe lesen
Der Playground zeigt denselben Date-Wert in mehreren Ansichten, damit du Einheiten- und Zeitzonenfehler schnell erkennst. Vergleiche zuerst getTime mit den Unix-Sekunden, prüfe dann die ISO- und lokalen Strings. Wenn das ISO-Datum korrekt ist, der lokale String aber anders aussieht, stimmt der Zeitstempel und nur die Anzeigezeitzone hat sich geändert.
- getTime ist immer Millisekunden seit der Unix-Epoche
- Unix-Sekunden sind getTime geteilt durch 1000 und abgerundet
- toISOString zeigt immer UTC mit einem abschließenden Z
- toString und toLocaleString zeigen die Browser-lokale Zeitzone an, sofern keine Optionen dies überschreiben