Die Methode Date.prototype.setSeconds() setzt die Sekunden eines Date-Objekts in der lokalen Zeitzone. Optional kann auch der Millisekundenanteil im selben Aufruf festgelegt werden. Werte außerhalb von 0–59 führen zu einem Minutenüberlauf, was die Methode für Sekundenarithmetik wie „in 90 Sekunden” oder „vor 30 Sekunden” prädestiniert.
Funktionsweise
Werte außerhalb von 0–59 führen zu einem automatischen Überlauf in höhere Zeiteinheiten. Beispielsweise schaltet setSeconds(120) zwei Minuten weiter, setSeconds(-1) eine Sekunde zurück.
Die Methode mutiert die Date-Instanz und gibt zusätzlich den neuen Zeitstempel zurück. Sie ist besonders nützlich, wenn präzise Zeitintervalle gesetzt werden müssen, etwa für Polling, Throttling oder Timer-Logik.
Syntax
date.setSeconds(secondsValue)
date.setSeconds(secondsValue, msValue)secondsValue Eine Ganzzahl von 0 bis 59, die die neue Sekunde angibt.
msValue (Optional) Eine Ganzzahl von 0 bis 999.
Rückgabewert
Die Anzahl der Millisekunden seit dem 1. Januar 1970 UTC nach der Aktualisierung.
Beispiele
Sekunden setzen
const date = new Date("2026-05-01T10:00:00");
date.setSeconds(45);
console.log(date.toLocaleTimeString("de-DE"));10:00:45Minutenüberlauf
const date = new Date("2026-05-01T10:00:00");
date.setSeconds(125);
console.log(date.toLocaleTimeString("de-DE"));10:02:05Sekunden und Millisekunden zusammen setzen
const date = new Date("2026-05-01T10:00:00.000Z");
date.setSeconds(30, 500);
console.log(date.toISOString());2026-05-01T10:00:30.500ZSekunden auf 0 setzen
Häufiger Anwendungsfall: einen Zeitstempel auf eine volle Minute runden.
function rundeAufMinute(date) {
const result = new Date(date);
result.setSeconds(0, 0);
return result;
}
const date = new Date("2026-05-01T10:00:42.873Z");
console.log(rundeAufMinute(date).toISOString());2026-05-01T10:00:00.000ZSekunden addieren
const date = new Date("2026-05-01T10:00:00");
date.setSeconds(date.getSeconds() + 90);
console.log(date.toLocaleTimeString("de-DE"));10:01:30Hinweise & verwandte Methoden
- Für die UTC-Variante:
Date.prototype.setUTCSeconds(). - Für „in N Sekunden”:
setSeconds(getSeconds() + N)ist das idiomatische Muster. - Beim Setzen auf eine volle Minute sollte gleichzeitig
msValueauf 0 gesetzt werden, um saubere Zeitstempel zu erhalten. - Die Methode mutiert das Original.