Ce face setFullYear / setMonth / setDate / setHours...
Metodele set… modifică obiectul Date pe loc și returnează noul număr de milisecunde. Unele acceptă mai multe componente deodată: setHours(9, 30, 0, 0) setează ora, minutele, secundele și milisecundele.
Valorile care depășesc limitele sunt mutate automat: setDate(0) înseamnă ultima zi a lunii anterioare, iar setDate(getDate() + 30) adună 30 de zile, cu trecere peste lună și an. Metoda veche setYear este învechită; folosește setFullYear.
Parametri
| Parametru | Descriere |
|---|---|
an, luna, zi, ore, ... |
Noile valori; luna de la 0 la 11. |
Ce returnează
Noul timestamp (milisecunde). Obiectul însuși este modificat.
Exemple
Exemplul 1: Adunarea zilelor și ultima zi a lunii
const d = new Date(2026, 9, 19);
d.setDate(d.getDate() + 20);
console.log(d.toDateString());
const ultima = new Date(2026, 2, 1);
ultima.setDate(0);
console.log(ultima.getDate());
const feb = new Date(2028, 2, 0);
console.log(feb.getDate());
Rezultat
Sun Nov 08 2026
28
29
Exemplul 2: Începutul zilei și peste o lună
const d = new Date(2026, 9, 19, 14, 37, 12);
d.setHours(0, 0, 0, 0);
console.log(d.toString());
const scadenta = new Date(2026, 0, 31);
scadenta.setMonth(scadenta.getMonth() + 1);
console.log(scadenta.toDateString());
const aniversare = new Date(2026, 5, 1);
aniversare.setFullYear(2030);
aniversare.setMinutes(90);
console.log(aniversare.toString());
Rezultat
Mon Oct 19 2026 00:00:00 GMT+0300 (Eastern European Summer Time)
Tue Mar 03 2026
Sat Jun 01 2030 01:30:00 GMT+0300 (Eastern European Summer Time)
Greșeli frecvente
- Aduni o lună la 31 ianuarie și ajungi în martie (31 februarie nu există). Verifică ziua rezultatului sau folosește ultima zi a lunii.
- Modifici o dată primită ca parametru și strici originalul. Lucrează pe o copie:
new Date(data).
Comenzi înrudite
getFullYear / getMonth / getDate / getDay / getHours...: Citesc componentele unei date în ora locală: anul, luna (0–11), ziua lunii, ziua săptămânii, ora…setUTCFullYear / setUTCDate / setUTCHours...: Schimbă componentele unei date în UTC, fără influența fusului orar și a orei de vară.getTime / setTime / valueOf: Citește sau setează momentul ca număr de milisecunde de la 1 ianuarie 1970 UTC.