Start · Sprachen · JavaScript · Referenz · Temporal.ZonedDateTime.prototype.second

Temporal.ZonedDateTime.prototype.second

Eigenschaft

Gibt die Sekundenkomponente (ganze Zahl von 0 bis 59) der lokalen Uhrzeit eines <code>Temporal.ZonedDateTime</code> zurück.

seit JavaScript ES2026 (Temporal); Firefox 139+, Chrome 144+; sons Kategorie: method-property

Signatur

get Temporal.ZonedDateTime.prototype.second

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

Typ
number
Beschreibung
Eine ganze Zahl von 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
56 789

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);
2021-07-01T12:34:00.789-04:00[America/New_York] 2021-07-01T12:34:00-04:00[America/New_York] 0

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`);
Berlin: 14:05:42 – nächste Minute in 18 s (je nach aktueller Zeit)

Schaltsekunden werden auf 59 begrenzt

const zdt = Temporal.ZonedDateTime.from("2016-12-31T23:59:60+00:00[UTC]");
console.log(zdt.second);
59

// Wichtig · Fallstricke

  • Nur lesbar: Eine Zuweisung wie zdt.second = 10 ändert nichts. Im Strict Mode löst sie einen TypeError aus. Für einen neuen Wert with({ second: 10 }) verwenden.
  • with() behält die Bruchteile: with({ second: 0 }) setzt millisecond, microsecond und nanosecond nicht zurück. Zum Abschneiden besser round({ smallestUnit: "minute", roundingMode: "trunc" }) nehmen.
  • Keine Schaltsekunden: Temporal kennt keine Schaltsekunden. Ein :60 in einer ISO-Zeichenkette wird beim Einlesen zu 59, second ist also nie 60.
  • 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 verschiedene second-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/polyfill einbinden oder vorher prüfen: typeof Temporal !== "undefined".