Baseline Widely available
Die toJSON()
-Methode von Date
Instanzen liefert einen String, der dieses Datum im gleichen ISO-Format wie toISOString()
darstellt.
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"
Syntax Parameter
Keine.
RückgabewertEin String, der das gegebene Datum im Datum-Zeit-String-Format entsprechend der Universalzeit darstellt, oder null
, wenn das Datum ungültig ist. Bei gültigen Daten entspricht der Rückgabewert dem von toISOString()
.
Die toJSON()
-Methode wird automatisch von JSON.stringify()
aufgerufen, wenn ein Date
-Objekt in einen String umgewandelt wird. Diese Methode soll in der Regel standardmäÃig nützliche Date
Objekte während der JSON Serialisierung serialisieren, die dann mit dem Date()
Konstruktor beim Reviver von JSON.parse()
deserialisiert werden können.
Die Methode versucht zunächst, ihren this
-Wert in einen primitiven Wert umzuwandeln, indem sie der Reihe nach ihre [Symbol.toPrimitive]()
(mit "number"
als Hinweis), valueOf()
, und toString()
Methoden aufruft. Wenn das Ergebnis eine nicht-endliche Zahl ist, wird null
zurückgegeben. (Dies entspricht im Allgemeinen einem ungültigen Datum, dessen valueOf()
NaN
zurückgibt.) Andernfalls, wenn der umgewandelte primitive Wert keine Zahl oder eine endliche Zahl ist, wird der Rückgabewert von this.toISOString()
zurückgegeben.
Beachten Sie, dass die Methode nicht überprüft, ob der this
-Wert ein gültiges Date
Objekt ist. Wenn jedoch Date.prototype.toJSON()
auf Nicht-Date
Objekte aufgerufen wird, schlägt dies fehl, es sei denn, die primitive Zahlenrepräsentation des Objekts ist NaN
oder das Objekt besitzt ebenfalls eine toISOString()
-Methode.
const jsonDate = new Date(0).toJSON(); // '1970-01-01T00:00:00.000Z'
const backToDate = new Date(jsonDate);
console.log(jsonDate); // 1970-01-01T00:00:00.000Z
Serialisierung und Rückumwandlung
Beim Parsen von JSON, das Datums-Strings enthält, können Sie den Date()
Konstruktor verwenden, um sie in die ursprünglichen Datumsobjekte zurückzuführen.
const fileData = {
author: "Maria",
title: "Date.prototype.toJSON()",
createdAt: new Date(2019, 3, 15),
updatedAt: new Date(2020, 6, 26),
};
const response = JSON.stringify(fileData);
// Imagine transmission through network
const data = JSON.parse(response, (key, value) => {
if (key === "createdAt" || key === "updatedAt") {
return new Date(value);
}
return value;
});
console.log(data);
Hinweis: Der Reviver von JSON.parse()
muss spezifisch für die erwartete Payload-Form sein, da die Serialisierung irreversibel ist: es ist nicht möglich, zwischen einem String, der ein Datum darstellt, und einem normalen String zu unterscheiden.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4