Signatur
Beschreibung
Die Methode getSeconds() liefert die Sekundenkomponente eines Date-Objekts als ganze Zahl zwischen 0 und 59. Grundlage ist die lokale Zeitzone der Laufzeitumgebung.
Typische Einsatzfälle sind Uhren und Countdowns, formatierte Zeitstempel wie HH:MM:SS oder das Zerlegen eines Zeitpunkts in einzelne Bestandteile, etwa zusammen mit getHours() und getMinutes().
Da UTC-Offsets weltweit (fast) immer ganze Minuten sind, liefern getSeconds() und getUTCSeconds() in der Praxis fast immer denselben Wert. Einzige Ausnahme sind historische Zeitzonen mit Offsets, die Sekunden enthalten (siehe Hinweise). Ist das Datum ungültig, gibt die Methode NaN zurück.
Rückgabewert
0 und 59 für die Sekunden in lokaler Zeit, oder NaN, wenn das Datum ungültig ist.Beispiele
Sekunden aus einem festen Datum lesen
const start = new Date(2024, 4, 17, 14, 30, 45);
console.log(start.getSeconds());
Digitaluhr im Format HH:MM:SS
const pad = (n) => String(n).padStart(2, '0');
const formatTime = (date) =>
`${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;
console.log(formatTime(new Date(2024, 0, 1, 9, 5, 7)));
Auf die nächste volle Minute warten
const now = new Date();
const msBisVolleMinute = (60 - now.getSeconds()) * 1000 - now.getMilliseconds();
setTimeout(() => {
console.log('Volle Minute erreicht:', new Date().getSeconds());
}, msBisVolleMinute);
Ungültiges Datum abfangen
const d = new Date('kein Datum');
const sek = d.getSeconds();
console.log(Number.isNaN(sek) ? 'Ungültiges Datum' : sek);
// Wichtig · Fallstricke
- Keine Schaltsekunden: ECMAScript-Zeit kennt keine Schaltsekunden. Der Wert
60kommt daher nie vor. - Ungültige Daten: Bei
Invalid Dateist das ErgebnisNaN. Prüfe das vor Berechnungen mitNumber.isNaN(). - Lokale Zeit vs. UTC: Für zeitzonenunabhängige Logik solltest du
getUTCSeconds()verwenden. Bei historischen Daten, etwa vor 1900 mit Ortszeit-Offsets wie LMT, können sich die beiden Werte unterscheiden. - Keine Millisekunden: Die Rückgabe ist immer ganzzahlig. Brauchst du Bruchteile, nimm zusätzlich
getMilliseconds(). - Fester Zeitpunkt: Ein
Date-Objekt aktualisiert sich nicht von selbst. Für eine laufende Uhr musst du bei jedem Tick ein neuesnew Date()erzeugen. - Für formatierte Ausgaben ist oft
Intl.DateTimeFormatbzw.toLocaleTimeString()die bessere Wahl. - Kompatibilität: Die Methode wird von allen Browsern und von Node.js unterstützt.