Signatur
Beschreibung
setUTCMinutes() ändert die Minutenangabe eines bestehenden Date-Objekts direkt im Objekt. Grundlage ist UTC, nicht die lokale Zeitzone der Laufzeitumgebung. Wenn du willst, kannst du im selben Aufruf auch Sekunden und Millisekunden setzen.
Die Methode eignet sich überall, wo Zeitangaben unabhängig von Zeitzone und Sommerzeit gerechnet werden sollen. Typische Fälle sind Server-Logik, das Runden von Zeitstempeln auf volle Stunden oder Viertelstunden, Termine in APIs, die UTC erwarten, und Tests, die auf jedem Rechner gleich ablaufen müssen.
Werte außerhalb des üblichen Bereichs sind erlaubt und werden übertragen: 60 Minuten ergeben eine Stunde mehr, -1 ergibt die letzte Minute der vorherigen Stunde. So lassen sich Minuten bequem addieren oder abziehen, zum Beispiel mit d.setUTCMinutes(d.getUTCMinutes() + 90).
Der Rückgabewert ist der neue Zeitstempel in Millisekunden seit der Unix-Epoche (1. Januar 1970, 00:00:00 UTC). Das Objekt selbst wird dabei verändert.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $minutesValue Pflicht | number | Minuten, normalerweise eine ganze Zahl von 0 bis 59. Werte außerhalb dieses Bereichs verändern auch die Stunde (und eventuell den Tag). |
|
| $secondsValue | number | Wert von getUTCSeconds() | Sekunden (0–59). Ohne Angabe bleiben die bisherigen Sekunden erhalten. |
| $msValue | number | Wert von getUTCMilliseconds() | Millisekunden (0–999). Ohne Angabe bleiben die bisherigen Millisekunden erhalten. Dieser Parameter ist nur erlaubt, wenn auch secondsValue angegeben ist. |
Rückgabewert
NaN, ist der Rückgabewert NaN und das Datum wird zu Invalid Date.Beispiele
Minuten in UTC setzen
const d = new Date('2024-03-15T10:20:30.000Z');
const ts = d.setUTCMinutes(45);
console.log(d.toISOString());
console.log(ts);
Auf die volle Viertelstunde abrunden
const roundDownToQuarter = (date) => {
const d = new Date(date); // Kopie, damit das Original unverändert bleibt
const m = d.getUTCMinutes();
d.setUTCMinutes(m - (m % 15), 0, 0);
return d;
};
console.log(roundDownToQuarter(new Date('2024-06-01T08:37:52.123Z')).toISOString());
Minuten addieren mit Übertrag über Stunde und Tag
const start = new Date('2024-12-31T23:30:00Z');
const end = new Date(start);
end.setUTCMinutes(end.getUTCMinutes() + 90);
console.log(end.toISOString());
Negative Werte zählen rückwärts
const d = new Date('2024-05-10T12:00:00Z');
d.setUTCMinutes(-5);
console.log(d.toISOString());
// Wichtig · Fallstricke
- Verändert das Objekt:
setUTCMinutes()ändert dasDate-Objekt direkt. Wenn das Original erhalten bleiben soll, erst mitnew Date(original)kopieren. - UTC oder lokale Zeit: Für lokale Minuten gibt es
setMinutes(). Bei Zeitzonen mit Versatz in halben oder Viertelstunden (z. B. Indien +05:30, Nepal +05:45) liefern die beiden Methoden verschiedene Ergebnisse. - Rückgabewert: Die Methode gibt einen Zeitstempel (Zahl) zurück, nicht das
Date-Objekt. Methodenketten wied.setUTCMinutes(0).toISOString()funktionieren deshalb nicht. - NaN: Ohne Argument oder mit einem Wert, der nicht in eine Zahl umgewandelt werden kann, wird das Datum ungültig (
Invalid Date). Nachkommastellen werden abgeschnitten. - Kompatibilität: Die Methode wird in allen Browsern und in Node.js unterstützt. Für neue Projekte mit viel Zeitzonen-Logik lohnt sich ein Blick auf die
Temporal-API, die noch nicht überall verfügbar ist.