Signatur
Beschreibung
Die Accessor-Eigenschaft second liefert die Sekunde der lokalen Uhrzeit (Wanduhrzeit) eines Temporal.ZonedDateTime-Objekts als ganze Zahl zwischen 0 und 59. Die Zeitzone ist dabei schon eingerechnet: Man bekommt die Sekunde, die eine Uhr in dieser Zeitzone zu diesem Zeitpunkt anzeigt.
Die Eigenschaft ist nur lesbar. Da Temporal.ZonedDateTime unveränderlich ist, erzeugt man für einen anderen Sekundenwert mit with({ second }) ein neues Objekt. Werte unterhalb der Sekunde stehen in den Eigenschaften millisecond, microsecond und nanosecond. second selbst wird nie gerundet, sondern immer abgeschnitten.
Typische Einsatzfälle sind formatierte Uhrzeit-Anzeigen, Countdown- und Timer-Logik, das Prüfen auf volle Minuten und das Zerlegen eines Zeitstempels in Einzelteile, etwa für eigene Formatierungen oder Protokolldaten.
Rückgabewert
0 bis 59: die Sekunde der lokalen Uhrzeit in der Zeitzone des Objekts.Beispiele
Sekunde aus einem Zeitstempel lesen
const zdt = Temporal.ZonedDateTime.from(
"2021-07-01T12:34:56.789-04:00[America/New_York]"
);
console.log(zdt.second); // Sekunde
console.log(zdt.millisecond); // Bruchteil gehört nicht zu second
Auf volle Minute setzen mit with()
const zdt = Temporal.ZonedDateTime.from(
"2021-07-01T12:34:56.789-04:00[America/New_York]"
);
// Achtung: with({ second: 0 }) lässt Millisekunden usw. stehen
const nurSekunde = zdt.with({ second: 0 });
console.log(nurSekunde.toString());
// Sauber abschneiden: auch die Sekundenbruchteile auf 0 setzen
const volleMinute = zdt.round({ smallestUnit: "minute", roundingMode: "trunc" });
console.log(volleMinute.toString(), volleMinute.second);
Sekunden bis zur nächsten vollen Minute (Uhr-Widget)
const jetzt = Temporal.Now.zonedDateTimeISO("Europe/Berlin");
const rest = 60 - jetzt.second;
const hh = String(jetzt.hour).padStart(2, "0");
const mm = String(jetzt.minute).padStart(2, "0");
const ss = String(jetzt.second).padStart(2, "0");
console.log(`Berlin: ${hh}:${mm}:${ss} – nächste Minute in ${rest} s`);
Schaltsekunden werden auf 59 begrenzt
const zdt = Temporal.ZonedDateTime.from("2016-12-31T23:59:60+00:00[UTC]");
console.log(zdt.second);
// Wichtig · Fallstricke
- Nur lesbar: Eine Zuweisung wie
zdt.second = 10ändert nichts. Im Strict Mode löst sie einenTypeErroraus. Für einen neuen Wertwith({ second: 10 })verwenden. with()behält die Bruchteile:with({ second: 0 })setztmillisecond,microsecondundnanosecondnicht zurück. Zum Abschneiden besserround({ smallestUnit: "minute", roundingMode: "trunc" })nehmen.- Keine Schaltsekunden: Temporal kennt keine Schaltsekunden. Ein
:60in einer ISO-Zeichenkette wird beim Einlesen zu59,secondist also nie60. - Zeitzone ist wichtig: Bei heutigen Zeitzonen ist der Versatz fast immer ein Vielfaches ganzer Minuten, sodass
secondüberall gleich ist. Historische Versätze (z. B. die mittlere Ortszeit, LMT) können aber Sekunden enthalten. Dann hat derselbe Zeitpunkt je nach Zeitzone verschiedenesecond-Werte. - Browser-Unterstützung: Temporal ist neu. Es ist in Firefox (ab 139) und in Chromium-Browsern (ab 144) verfügbar, in Safari noch nicht überall. Für den produktiven Einsatz den Polyfill
@js-temporal/polyfilleinbinden oder vorher prüfen:typeof Temporal !== "undefined".