Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Date : méthode toJSON()

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

La méthode toJSON() des instances de Date retourne une chaîne de caractères représentant cette date au même format ISO que toISOString().

Exemple interactif

const event = new Date("August 19, 1975 23:15:30 UTC");

const jsonDate = event.toJSON();

console.log(jsonDate);
// Expected output: "1975-08-19T23:15:30.000Z"

console.log(new Date(jsonDate).toUTCString());
// Expected output: "Tue, 19 Aug 1975 23:15:30 GMT"

Syntaxe

js
toJSON()

Paramètres

Aucun.

Valeur de retour

Une chaîne de caractères représentant la date donnée au format chaîne de date-heure selon le temps universel, ou null si la date est invalide. Pour les dates valides, la valeur de retour est identique à celle de toISOString().

Description

La méthode toJSON() est automatiquement appelée par JSON.stringify() lorsqu'un objet Date est converti en chaîne de caractères. Cette méthode est généralement destinée, par défaut, à sérialiser utilement les objets Date lors de la sérialisation JSON, qui peuvent ensuite être désérialisés à l'aide du constructeur Date() comme reviver de JSON.parse().

La méthode tente d'abord de convertir sa valeur this en une valeur primitive en appelant successivement [Symbol.toPrimitive]() (avec l'indication "number"), valueOf(), puis toString(). Si le résultat est un nombre non fini, null est retourné. (Cela correspond généralement à une date invalide, dont valueOf() retourne NaN.) Sinon, si la valeur primitive convertie n'est pas un nombre ou est un nombre fini, la valeur de retour de this.toISOString() est retournée.

Notez que la méthode ne vérifie pas si la valeur this est un objet Date valide. Cependant, appeler Date.prototype.toJSON() sur des objets qui ne sont pas des Date échoue sauf si la représentation primitive numérique de l'objet est NaN, ou si l'objet possède aussi une méthode toISOString().

Exemple

Utiliser la méthode toJSON()

js
const jsonDate = new Date().toJSON(); // '1970-01-01T00:00:00.000Z'
const retourVersDate = new Date(jsonDate);

console.log(jsonDate); // 1970-01-01T00:00:00.000Z

Sérialisation et désérialisation

Lors de l'analyse d'un JSON contenant des chaînes de caractères représentant des dates, vous pouvez utiliser le constructeur Date() pour les restaurer en objets date d'origine.

js
const donneeFichier = {
  author: "Maria",
  title: "Date.prototype.toJSON()",
  createdAt: new Date(2019, 3, 15),
  updatedAt: new Date(2020, 6, 26),
};
const reponse = JSON.stringify(donneeFichier);

// Imaginons une transmission par le réseau

const donnee = JSON.parse(reponse, (cle, valeur) => {
  if (cle === "createdAt" || cle === "updatedAt") {
    return new Date(valeur);
  }
  return valeur;
});

console.log(donnee);

Note : Le reviver de JSON.parse() doit être adapté à la structure attendue du contenu, car la sérialisation est irréversible : il n'est pas possible de distinguer une chaîne représentant une date d'une chaîne normale.

Spécifications

Specification
ECMAScript® 2026 Language Specification
# sec-date.prototype.tojson

Compatibilité des navigateurs

Voir aussi