setFullYear / setMonth / setDate / setHours… în JavaScript

Dată și oră Toate browserele, Node.js

Schimbă componentele unei date în ora locală; valorile în afara limitelor trec automat mai departe.

Sintaxă
data.setFullYear(an, luna, zi)
data.setMonth(luna, zi)
data.setDate(zi)
data.setHours(ore, minute, secunde, ms)
data.setMinutes(minute, secunde, ms)
data.setSeconds(secunde, ms)
data.setMilliseconds(ms)

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