Signatur
Beschreibung
Temporal.Now.plainDateISO() ist eine statische Methode des Namensraums Temporal.Now. Sie liefert das heutige Datum (Jahr, Monat, Tag) als Temporal.PlainDate, also ohne Uhrzeit und ohne Zeitzone. Als Kalender wird immer "iso8601" (der gregorianische Kalender nach ISO 8601) verwendet.
Welches Datum „heute“ ist, hängt von der Zeitzone ab: Wenn es in Berlin schon der 2. Januar ist, kann es in New York noch der 1. Januar sein. Ohne Argument nimmt die Methode die Systemzeitzone der Laufzeitumgebung (entspricht Temporal.Now.timeZoneId()). Mit dem Parameter timeZone bestimmen Sie gezielt, für welche Zeitzone das Datum berechnet wird.
Die Methode ist nützlich für Fälligkeitsprüfungen, Altersberechnungen, Tagesberichte oder Datumsfelder in Formularen, also immer dann, wenn die Uhrzeit keine Rolle spielt. Anders als bei new Date() gibt es dabei keine versteckten Uhrzeit- und Zeitzonenanteile, die Vergleiche verfälschen könnten.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $timeZone | string | Temporal.ZonedDateTime | Temporal.Now.timeZoneId() | Die Zeitzone, für die das aktuelle Datum ermittelt wird: entweder eine IANA-Kennung wie "Europe/Berlin", ein fester Versatz wie "+01:00" oder "UTC", oder eine Temporal.ZonedDateTime, deren Zeitzone übernommen wird. Ohne Angabe gilt die Systemzeitzone. |
Rückgabewert
Temporal.PlainDate-Objekt mit dem aktuellen Datum in der angegebenen Zeitzone und dem Kalender "iso8601".Beispiele
Heutiges Datum in der Systemzeitzone
const heute = Temporal.Now.plainDateISO();
console.log(heute.toString());
console.log(heute.year, heute.month, heute.day);
console.log(heute.dayOfWeek); // 1 = Montag … 7 = Sonntag
Datum in verschiedenen Zeitzonen vergleichen
const berlin = Temporal.Now.plainDateISO('Europe/Berlin');
const tokio = Temporal.Now.plainDateISO('Asia/Tokyo');
const losAngeles = Temporal.Now.plainDateISO('America/Los_Angeles');
console.log(`Berlin: ${berlin}, Tokio: ${tokio}, Los Angeles: ${losAngeles}`);
// Ist in Tokio schon ein anderer Tag?
if (Temporal.PlainDate.compare(tokio, berlin) > 0) {
console.log('In Tokio ist schon morgen.');
}
Tage bis zur Fälligkeit berechnen
const faelligAm = Temporal.PlainDate.from('2025-07-01');
const heute = Temporal.Now.plainDateISO('Europe/Berlin');
const rest = heute.until(faelligAm, { largestUnit: 'day' }).days;
if (rest < 0) {
console.log(`Überfällig seit ${-rest} Tagen`);
} else if (rest === 0) {
console.log('Heute fällig!');
} else {
console.log(`Noch ${rest} Tage bis zur Fälligkeit`);
}
Alter aus dem Geburtsdatum bestimmen
const alterBerechnen = (geburtsdatum) => {
const geburt = Temporal.PlainDate.from(geburtsdatum);
const heute = Temporal.Now.plainDateISO();
return geburt.until(heute, { largestUnit: 'year' }).years;
};
console.log(alterBerechnen('1990-12-24'));
// Wichtig · Fallstricke
- Browser-Unterstützung: Temporal ist noch neu. Firefox (ab 139) und Chrome (ab 144) unterstützen es, Safari und ältere Node.js-Versionen noch nicht. Für den produktiven Einsatz empfiehlt sich ein Polyfill wie
@js-temporal/polyfillodertemporal-polyfill. Prüfen lässt sich das mittypeof Temporal !== 'undefined'. - Zeitzone beachten: Ohne Argument hängt das Ergebnis von der Systemzeitzone ab. Auf Servern ist das oft
UTC. Kurz vor oder nach Mitternacht kann dadurch ein anderes Datum herauskommen als beim Nutzer. Geben Sie die Zeitzone deshalb möglichst ausdrücklich an. - Ungültige Zeitzonen wie
"Europa/Berlin"lösen einenRangeErroraus. Ein Wert, der weder Zeichenkette nochTemporal.ZonedDateTimeist, löst einenTypeErroraus. - Es gibt kein
Temporal.Now.plainDate()mit Kalender-Argument mehr, denn es wurde aus dem Vorschlag entfernt. Für andere Kalender verwenden SieTemporal.Now.plainDateISO().withCalendar('japanese'). - Vergleichen Sie
PlainDate-Objekte mit.equals()oderTemporal.PlainDate.compare(), nicht mit==oder<. Operatoren wie<lösen einenTypeErroraus, weilvalueOf()absichtlich einen Fehler wirft. - Die Genauigkeit der Systemuhr kann aus Datenschutzgründen (Schutz vor Fingerprinting) reduziert sein. Beim Datum spielt das aber praktisch keine Rolle.