Start · Sprachen · JavaScript · Referenz · Temporal.Now.plainDateISO()

Temporal.Now.plainDateISO()

Methode

Gibt das aktuelle Kalenderdatum als <code>Temporal.PlainDate</code> im ISO-8601-Kalender zurück, wahlweise für eine bestimmte Zeitzone.

seit JavaScript ES2026 (Temporal, Stage 4) – Firefox 139+, Chrome Kategorie: method-property

Signatur

Temporal.Now.plainDateISO(timeZone)

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

Typ
Temporal.PlainDate
Beschreibung
Ein neues 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
2025-06-18 2025 6 18 3

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.');
}
Berlin: 2025-06-18, Tokio: 2025-06-19, Los Angeles: 2025-06-18 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`);
}
Noch 13 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'));
34

// 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/polyfill oder temporal-polyfill. Prüfen lässt sich das mit typeof 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 einen RangeError aus. Ein Wert, der weder Zeichenkette noch Temporal.ZonedDateTime ist, löst einen TypeError aus.
  • Es gibt kein Temporal.Now.plainDate() mit Kalender-Argument mehr, denn es wurde aus dem Vorschlag entfernt. Für andere Kalender verwenden Sie Temporal.Now.plainDateISO().withCalendar('japanese').
  • Vergleichen Sie PlainDate-Objekte mit .equals() oder Temporal.PlainDate.compare(), nicht mit == oder <. Operatoren wie < lösen einen TypeError aus, weil valueOf() 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.