在前后端分離的開發(fā)中,我們通常使用 JSON(JavaScript Object Notation)來傳輸數(shù)據(jù)。在 Date(時間日期)對象需要轉(zhuǎn)換為 JSON 數(shù)據(jù)時,我們可以使用 toJSON() 方法將其轉(zhuǎn)換為字符串形式。
let date = new Date(); // 創(chuàng)建一個 Date 對象 let json = JSON.stringify(date.toJSON()); // 將 Date 對象轉(zhuǎn)換成 JSON 數(shù)據(jù) console.log(json); // 輸出轉(zhuǎn)換后的 JSON 數(shù)據(jù)
使用 toJSON() 方法可以將 Date 對象轉(zhuǎn)換為 ISO 格式的字符串,如下實例:
let date = new Date(); let json = JSON.stringify({ "date": date.toJSON() }); console.log(json); // 輸出 {"date":"2021-11-08T10:09:33.747Z"}
如果需要將 JSON 轉(zhuǎn)換為 Date 對象,我們可以使用 reviver 參數(shù),在 reviver 函數(shù)中將 ISO 格式的字符串轉(zhuǎn)換為 Date 對象。
let json = '{"date":"2021-11-08T10:09:33.747Z"}'; // JSON 數(shù)據(jù) let object = JSON.parse(json, (key, value) =>{ if (key === 'date') { return new Date(value); // 使用 Date 構(gòu)造函數(shù)將字符串轉(zhuǎn)換為 Date 對象 } return value; }); console.log(object.date); // 輸出 Date 對象
在以上代碼中,我們通過使用 JSON.parse() 方法,同時傳遞 reviver 函數(shù),將 JSON 數(shù)據(jù)轉(zhuǎn)換為 JavaScript 對象。在 reviver 函數(shù)中,我們對 key 為 'date' 的值進(jìn)行了處理,使用 Date 構(gòu)造函數(shù)將 ISO 格式的字符串轉(zhuǎn)換為 Date 對象。