Ce face Date.prototype.toISOString / toJSON
toISOString returnează mereu același format, în UTC (litera Z de la final): ideal pentru salvare, API-uri și baze de date. Se citește înapoi cu new Date(text) fără pierderi.
toJSON returnează același text și este apelată automat de JSON.stringify. Pentru o dată invalidă, toISOString aruncă RangeError, iar toJSON returnează null.
Ce returnează
Un șir de caractere.
Exemple
Exemplul 1: Format standard și JSON
const d = new Date(2026, 9, 19, 14, 30);
console.log(d.toISOString());
console.log(JSON.stringify({ creat: d }));
console.log(new Date(d.toISOString()).getTime() === d.getTime());
console.log(new Date("x").toJSON());
Rezultat
2026-10-19T11:30:00.000Z
{"creat":"2026-10-19T11:30:00.000Z"}
true
null
Exemplul 2: Doar data, pentru un câmp de formular
Pentru un <input type="date">, ia primele 10 caractere. Atenție: data este în UTC; aproape de miezul nopții poate fi ziua anterioară.
console.log(new Date(2026, 9, 19, 12).toISOString().slice(0, 10));
console.log(new Date(2026, 9, 19, 1).toISOString().slice(0, 10));
Rezultat
2026-10-19
2026-10-18
Greșeli frecvente
- Afișezi utilizatorilor rezultatul lui
toISOStringcrezând că este ora locală. Este în UTC; pentru afișare foloseștetoLocaleString("ro-RO").
Comenzi înrudite
Date.prototype.toString / toDateString / toUTCString: Transformă data în text în formatul implicit, în engleză: complet, doar data, doar ora sau în UTC.JSON.stringify: Transformă un obiect sau tablou JavaScript în text JSON.toLocaleDateString / toLocaleString / toLocaleTimeString: Afișează data și ora după obiceiurile unei țări, de exemplu în română: „luni, 19 octombrie 2026”.