JavaScript Dateオブジェクト


const d = new Date();
const d = new Date("2022-03-25");

Dateオブジェクトは静的です。「時計」は「動作していません」。

コンピューターの時計が進んでいる間、Dateオブジェクトはそうではありません。

JavaScript Dateの出力

デフォルトでは、JavaScriptはブラウザのタイムゾーンを使用し、日付を完全なテキスト文字列として表示します:

Sat Jul 06 2024 14:43:20 GMT+0900 (GMT+09:00)

日付の表示方法については、後でこのチュートリアルで詳しく学びます。

日付オブジェクトの作成

Dateオブジェクトはnew Date()コンストラクタで作成されます。

新しい日付オブジェクトを作成する方法には9つの方法があります:

  • new Date()
  • new Date(日付文字列)
  • new Date(年, 月)
  • new Date(年, 月, 日)
  • new Date(年, 月, 日, 時)
  • new Date(年, 月, 日, 時, 分)
  • new Date(年, 月, 日, 時, 分, 秒)
  • new Date(年, 月, 日, 時, 分, 秒, ミリ秒)
  • new Date(ミリ秒)

JavaScript new Date()

new Date()は現在の日付と時間で日付オブジェクトを作成します:


const d = new Date();

new Date(日付文字列)

new Date(日付文字列)は日付文字列から日付オブジェクトを作成します:


const d = new Date("October 13, 2014 11:13:00");
const d = new Date("2022-03-25");

new Date(年, 月, …)

new Date(年, 月, …)は指定した日付と時間で日付オブジェクトを作成します。

7つの数字は、順に年、月、日、時、分、秒、ミリ秒を指定します:


const d = new Date(2018, 11, 24, 10, 33, 30, 0);

JavaScriptでは、月は0から11で数えます:

1月 = 0。

12月 = 11。

11より大きい月を指定してもエラーにはなりませんが、オーバーフローは次の年に加えられます:

例:


const d = new Date(2018, 15, 24, 10, 33, 30); // 2019年4月24日10時33分30秒

日数が最大を超えてもエラーにはなりませんが、オーバーフローは次の月に加えられます:


const d = new Date(2018, 5, 35, 10, 33, 30); // 2018年6月5日10時33分30秒

6, 5, 4, 3, 2の数字を使用する

6つの数字は、年、月、日、時、分、秒を指定します:


const d = new Date(2018, 11, 24, 10, 33, 30);

5つの数字は、年、月、日、時、分を指定します:


const d = new Date(2018, 11, 24, 10, 33);

4つの数字は、年、月、日、時を指定します:


const d = new Date(2018, 11, 24, 10);

3つの数字は、年、月、日を指定します:


const d = new Date(2018, 11, 24);

2つの数字は、年と月を指定します:


const d = new Date(2018, 11);

月を省略することはできません。パラメータが1つだけの場合は、ミリ秒として扱われます。


const d = new Date(2018); // 1970年1月1日00:00:02に当たるので、前世紀

前世紀

1桁または2桁の年は、19xxとして解釈されます:


const d = new Date(99, 11, 24); // 1999年12月24日
const d = new Date(9, 11, 24);  // 1909年12月24日

JavaScriptは日付をミリ秒で保存します

JavaScriptは、1970年1月1日以降のミリ秒数として日付を保存します。

ゼロ時間は1970年1月1日00:00:00 UTCです。

1日(24時間)は86,400,000ミリ秒です。

現在の時間は:1720244600521ミリ秒が1970年1月1日以降であるため、

new Date(ミリ秒)

new Date(ミリ秒)はミリ秒にゼロ時間を追加して新しい日付オブジェクトを作成します。

Examples:

01 January 1970 plus 100,000,000,000ミリ秒は:


const d = new Date(100000000000);

01 January 1970 minus 100,000,000,000ミリ秒は:


const d = new Date(-100000000000);

01 January 1970 plus 24時間は:


const d = new Date(24 * 60 * 60 * 1000);
// または
const d = new Date(86400000);

01 January 1970 plus 0ミリ秒は:


const d = new Date(0);

日付のメソッド

日付オブジェクトが作成されると、いくつかのメソッドを使用して操作することができます。

日付メソッドを使用して、日付オブジェクトの年、月、日、時、分、秒、ミリ秒をローカル時間またはUTC(協定世界時またはGMT)時間で取得および設定することができます。

日付メソッドとタイムゾーンについては、次の章で説明します。

日付の表示

JavaScriptは(デフォルトで)toString()メソッドを使用して日付を出力します。これは、タイムゾーンを含む日付の文字列表現です。フォーマットはECMAScript仕様で指定されています:

Sat Jul 06 2024 14:43:20 GMT+0900 (GMT+09:00)

HTMLで日付オブジェクトを表示すると、自動的にtoString()メソッドを使用して文字列に変換されます。


const d = new Date();
d.toString();

toDateString()メソッドは、日付をより読みやすい形式に変換します:


const d = new Date();
d.toDateString();

toUTCString()メソッドは、UTC標準を使用して日付を文字列に変換します:


const d = new Date();
d.toUTCString();

toISOString()メソッドは、ISO標準を使用して日付を文字列に変換します:


const d = new Date();
d.toISOString();