Movatterモバイル変換


[0]ホーム

URL:


  1. 開発者向けのウェブ技術
  2. JavaScript
  3. JavaScript リファレンス
  4. 標準組み込みオブジェクト
  5. Date
  6. Date.prototype.toJSON()

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。

View in EnglishAlways switch to English

Date.prototype.toJSON()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015年7月⁩.

toJSON()Date インスタンスのメソッドで、この日時をtoISOString() と同じ ISO 形式で表す文字列を返します。

試してみましょう

const event = new Date("August 19, 1975 23:15:30 UTC");const jsonDate = event.toJSON();console.log(jsonDate);// 予想される結果: "1975-08-19T23:15:30.000Z"console.log(new Date(jsonDate).toUTCString());// 予想される結果: "Tue, 19 Aug 1975 23:15:30 GMT"

構文

js
toJSON()

引数

なし。

返値

協定世界時に基づき、指定された日付を日時文字列形式で表す文字列。または、日付が無効である場合はnull です。有効な日時である場合、返値はtoISOString() と同じ ISO 形式です。

解説

toJSON() メソッドは、Date オブジェクトが文字列化されると、JSON.stringify() によって自動的に呼び出されます。このメソッドは、通常、JSON シリアライズ中にDate オブジェクトをシリアライズするために使用することを意図しており、Date() コンストラクターを使用してJSON.parse() の復元関数としてシリアライズ解除することができます。

このメソッドは、プリミティブ値に変換するために、まず、そのthis 値を[Symbol.toPrimitive]() (ヒントとして"number" を使用)、valueOf()toString() の各メソッドをこの順で呼び出します。結果が有限数でない場合は、null が返されます(これは通常、valueOf()NaN を返す無効な日付に対応します)。それ以外の場合、変換されたプリミティブが数値でないか、有限の数値である場合は、this.toISOString() の返値が返されます。

このメソッドは、this の値が有効なDate オブジェクトであるかどうかを検証しないことに注意してください。ただし、Date 以外のオブジェクトに対してDate.prototype.toJSON() を呼び出すと、そのオブジェクトのプリミティブ数値表現がNaN であるか、そのオブジェクトがtoISOString() メソッドを併せて持っている場合を除き、失敗します。

toJSON() を使う

js
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

シリアライズの往復

日時文字列を含む JSON を構文解析する場合、Date() コンストラクターを使用して、それらを元の日時オブジェクトに復元することができます。

js
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);// ネットワーク経由での送信をイメージconst data = JSON.parse(response, (key, value) => {  if (key === "createdAt" || key === "updatedAt") {    return new Date(value);  }  return value;});console.log(data);

メモ:JSON.parse() の復元関数は、期待する内容の形状に仕様上一致している必要があります。これは、シリアライズは不可逆であるため、 Date を表す文字列と通常の文字列を判別することが不可能だからです。

仕様書

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

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp