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

Temporal.PlainDateTime.prototype.second

Eigenschaft

Liefert die Sekundenkomponente eines <code>Temporal.PlainDateTime</code> als ganze Zahl von 0 bis 59.

seit JavaScript Temporal (Stage 3 → ES2026-Kandidat); Firefox 139+ Kategorie: method-property

Signatur

get Temporal.PlainDateTime.prototype.second

Beschreibung

Die Zugriffs-Eigenschaft second gibt die Sekunden der Uhrzeit eines Temporal.PlainDateTime-Objekts zurück. Der Wert ist immer eine ganze Zahl zwischen 0 und 59. Bruchteile einer Sekunde stehen in den getrennten Eigenschaften millisecond, microsecond und nanosecond.

Die Eigenschaft ist schreibgeschützt, weil Temporal-Objekte unveränderlich sind. Soll die Sekunde geändert werden, erzeugt man mit with({ second: … }) ein neues Objekt. Mit add() oder subtract() verschiebt man die Zeit, dabei werden Überläufe in Minuten, Stunden und Tage automatisch übertragen.

Ein PlainDateTime hat keine Zeitzone. Der Wert von second hängt deshalb nie von der Sommerzeit oder der Systemzeitzone ab. Er gibt genau die gespeicherte Wanduhrzeit wieder. Das passt zum Beispiel für Termine in Formularen, Fahrplänen oder Protokollzeilen ohne Zeitzonenangabe.

Rückgabewert

Typ
number
Beschreibung
Ganze Zahl von 0 bis 59, nämlich die Sekundenkomponente der Uhrzeit.

Beispiele

Sekunde auslesen

const dt = Temporal.PlainDateTime.from('2024-03-15T14:30:45.250');
console.log(dt.second);
console.log(dt.millisecond);
45 250

Sekunde per with() ändern (unveränderliches Objekt)

const start = Temporal.PlainDateTime.from('2024-03-15T14:30:45');
// Auf volle Minute setzen, Sub-Sekunden ebenfalls nullen
const gerundet = start.with({ second: 0, millisecond: 0, microsecond: 0, nanosecond: 0 });
console.log(gerundet.toString());
console.log(start.second); // Original bleibt unverändert
2024-03-15T14:30:00 45

Überlauf beim Addieren

const dt = Temporal.PlainDateTime.from('2024-12-31T23:59:50');
const spaeter = dt.add({ seconds: 15 });
console.log(spaeter.second, spaeter.toString());
5 2025-01-01T00:00:05

Zeitstempel formatiert ausgeben

const pad = (n) => String(n).padStart(2, '0');
const dt = new Temporal.PlainDateTime(2024, 6, 1, 8, 5, 7);
const uhrzeit = `${pad(dt.hour)}:${pad(dt.minute)}:${pad(dt.second)}`;
console.log(uhrzeit);
08:05:07

// Wichtig · Fallstricke

  • Keine Schaltsekunden: Temporal kennt keine 60. Sekunde. Bei from('…T23:59:60') wird der Wert standardmäßig auf 59 begrenzt. Mit { overflow: 'reject' } wird stattdessen ein RangeError ausgelöst.
  • Schreibgeschützt: dt.second = 10 ändert nichts und wirft im Strict Mode einen TypeError. Verwende with().
  • Werte über 59 in with() werden mit overflow: 'constrain' (Standard) auf 59 begrenzt und nicht in die nächste Minute übertragen. Wer einen Übertrag braucht, nimmt add().
  • Kompatibilität: Temporal ist noch nicht in allen Browsern verfügbar (bisher Firefox 139+ und Chrome 144+; Safari und ältere Node.js-Versionen fehlen). Für den produktiven Einsatz empfiehlt sich ein Polyfill wie @js-temporal/polyfill oder temporal-polyfill.