Die Methode Date.prototype.setMilliseconds() setzt den Millisekundenanteil eines Date-Objekts in der lokalen Zeitzone. Werte außerhalb von 0–999 werden automatisch in Sekunden umgerechnet und in die nächsten Zeitkomponenten übertragen. Diese implizite Normalisierung ist eine Stärke der Methode: Sie erlaubt eine elegante Manipulation von feingranularen Zeitwerten ohne manuelle Modulo-Berechnungen.
Funktionsweise
Wird beispielsweise 1500 übergeben, fügt JavaScript automatisch eine Sekunde und 500 Millisekunden hinzu. Negative Werte werden ebenfalls korrekt rückwärts gerechnet:
setMilliseconds(1500): +1 Sekunde, 500 ms.setMilliseconds(-100): -100 ms (also Sekunde davor, 900 ms).setMilliseconds(NaN): Invalidiert das gesamte Date-Objekt.
Die Methode mutiert das Original und gibt zusätzlich den neuen Zeitstempel zurück.
Syntax
date.setMilliseconds(msValue)msValue Eine Ganzzahl, die den neuen Millisekundenwert angibt. Idealerweise zwischen 0 und 999. Werte außerhalb dieses Bereichs werden in Sekunden überrollt.
Rückgabewert
Die Anzahl der Millisekunden seit dem 1. Januar 1970 UTC nach der Aktualisierung.
Beispiele
Millisekunden setzen
const date = new Date("2026-05-01T10:00:00.000Z");
date.setMilliseconds(250);
console.log(date.toISOString());2026-05-01T10:00:00.250ZÜberlauf in Sekunden
const date = new Date("2026-05-01T10:00:00.000Z");
date.setMilliseconds(1500);
console.log(date.toISOString());2026-05-01T10:00:01.500ZMillisekunden auf 0 setzen für saubere Sekunden
Praktisch für die Erzeugung „runder” Zeitstempel, etwa zum Vergleichen oder als Cache-Schlüssel.
function rundeAufSekunde(date) {
const result = new Date(date);
result.setMilliseconds(0);
return result;
}
const date = new Date("2026-05-01T10:00:00.873Z");
console.log(rundeAufSekunde(date).toISOString());2026-05-01T10:00:00.000ZSub-Sekunden-Animation
const start = new Date("2026-05-01T10:00:00.000Z");
const frames = [0, 250, 500, 750];
const positionen = frames.map(ms => {
const f = new Date(start);
f.setMilliseconds(ms);
return f.toISOString().slice(17);
});
console.log(positionen);[ '00.000Z', '00.250Z', '00.500Z', '00.750Z' ]Hinweise & verwandte Methoden
- Für die UTC-Variante:
Date.prototype.setUTCMilliseconds()– verhält sich praktisch identisch. - Für hochpräzise Animationen oder Performance-Messungen ist
performance.now()die bessere Wahl. setMilliseconds(NaN)invalidiert das Date-Objekt –getTime()liefert anschließendNaN.- Die Methode mutiert das Original; eine Kopie sollte vorher mit
new Date(original)erzeugt werden.