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

JavaScript Syntax
date.setMilliseconds(msValue)
Parameter
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

JavaScript Beispiel
const date = new Date("2026-05-01T10:00:00.000Z");
date.setMilliseconds(250);
console.log(date.toISOString());
Output
2026-05-01T10:00:00.250Z

Überlauf in Sekunden

JavaScript Beispiel
const date = new Date("2026-05-01T10:00:00.000Z");
date.setMilliseconds(1500);
console.log(date.toISOString());
Output
2026-05-01T10:00:01.500Z

Millisekunden auf 0 setzen für saubere Sekunden

Praktisch für die Erzeugung „runder” Zeitstempel, etwa zum Vergleichen oder als Cache-Schlüssel.

JavaScript Beispiel
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());
Output
2026-05-01T10:00:00.000Z

Sub-Sekunden-Animation

JavaScript Beispiel
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);
Output
[ '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ßend NaN.
  • Die Methode mutiert das Original; eine Kopie sollte vorher mit new Date(original) erzeugt werden.
/ Weiter

Zurück zu Date

Zur Übersicht