Date オブジェクトのインスタンスを作成する方法
【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム
【Dateオブジェクトのコンストラクタの種類】
Date オブジェクトのインスタンス(実体)を作成するにはコンストラクタを使用します。
・書式
new Date() new Date(経過ミリ秒数) new Date(日付と時刻を表す文字列) new Date(年, 月 [, 日 [, 時 [, 分 [, 秒 [, ミリ秒]]]]])
引数の指定方法が異なる 4 種類のコンストラクタが使用できます。このあと、それぞれの使い方について解説します。
※ Date オブジェクトのインスタンスを作成すると、特定の日時を表す値を持ちます。この値は内部的には 1970 年 1 月 1 日 0 時 0 分 0 秒 UTC からの経過ミリ秒という形式で保管されており、 Date オブジェクトのインスタンスメソッドを使うことで色々な形式で情報を取り出すことができます。
【現在日時のDateオブジェクトのインスタンスを作成する】
コンストラクタで引数を指定せずに Date オブジェクトのインスタンスを作成すると、現在の日時の値を持つインスタンスができる。
・書式
new Date()
次のサンプルをみてください。
let d = new Date();//インスタンスd = コンストラクタ Date() console.log(d.toString()); >> Thu Oct 15 2020 12:44:10 GMT+0900 (日本標準時) console.log(d.toUTCString()); >> Thu, 15 Oct 2020 03:44:10 GMT
インスタンスを作成した時の日時の値を持つインスタンスを作成しました。
Date オブジェクトの toString メソッドはローカルの環境で設定されているタイムゾーンで日付が表示する。
toUTCString メソッドはタイムゾーンを UTC (協定世界時) として日付が表示する
【経過ミリ秒を指定してDateオブジェクトのインスタンスを作成する】
基準日時 1970 年 1 月 1 日 0 時 0 分 0 秒 UTC からの経過ミリ秒を指定して Date オブジェクトのインスタンスを作成します。
・書式
new Date(経過ミリ秒数)
引数に指定した基準日時からの経過ミリ秒数で表される日時の値を持つ Date オブジェクトのインスタンスを作成します。
このコンストラクタでは UTC からの経過ミリ秒で日時を指定するため、タイムゾーンについて考慮する必要がありません。
・サンプル
let d1 = new Date(1000); console.log(d1.toUTCString()); >> Thu, 01 Jan 1970 00:00:01 GMT let d2 = new Date(1602679695309); console.log(d2.toUTCString()); >> Wed, 14 Oct 2020 12:48:15 GMT
最初の例では基準日時からの 1000 ミリ秒( 1 秒)経過後の日時を値を持つインスタンスを作成しました。次の例では基準日時からの 1602679695309 ミリ秒経過後の日時を値を持つインスタンスを作成しました。
【日時を表す文字列を指定してDateオブジェクトのインスタンスを作成する】
・書式
new Date(日付と時刻を表す文字列)
文字列の形式は特に決まっていません。
・サンプル
let d1 = new Date('2020-10-14T21:48:15'); console.log(d1.toString()); >> Wed Oct 14 2020 21:48:15 GMT+0900 (日本標準時) let d2 = new Date('2020-10-14T21:48:15+0900'); console.log(d2.toString()); >> Wed Oct 14 2020 21:48:15 GMT+0900 (日本標準時) let d3 = new Date('2020-10-14T21:48:15Z'); console.log(d3.toString()); >> Thu Oct 15 2020 06:48:15 GMT+0900 (日本標準時)
タイムゾーンを指定しなかった場合とタイムゾーンとして日本標準時および UTC を指定した場合でインスタンスを作成しました。
タイムゾーンを指定しなかった場合は、ローカルの環境で設定されているタイムゾーンでの日時が指定されたものとをして扱われるようです。
【年や分などを数値で指定してDateオブジェクトのインスタンスを作成する】
年、月、日、時、分、秒、ミリ秒に関する数値をそれぞれお指定して Date オブジェクトのインスタンスを作成します。
・書式
new Date(年, 月 [, 日 [, 時 [, 分 [, 秒 [, ミリ秒]]]]])
年と月については必須の項目ですが、それ以外については省略可能!
省略した場合、日は 1 に、それ以外の 時、分、秒、ミリ秒は 0 が設定されます。年については 4 桁または 2 桁で指定します。 2 桁で指定した場合は 1900 + 年 となります。また月に関しては 0 から 11 の値で指定します。 1 月が 0 、 2 月が 1 、 12 月 が 11 です
サンプル
let d1 = new Date(2012, 9); console.log(d1.toString()); >> Mon Oct 01 2012 00:00:00 GMT+0900 (日本標準時) let d2 = new Date(96, 3, 24); console.log(d2.toString()); >> Wed Apr 24 1996 00:00:00 GMT+0900 (日本標準時) let d3 = new Date(2020, 9, 14, 16, 28, 5, 114); console.log(d3.toString()); >> Wed Oct 14 2020 16:28:05 GMT+0900 (日本標準時)
【コンストラクタをnew演算子をつけずに呼びだした場合】
Date オブジェクトのコンストラクタを new 演算子を付けずに関数として呼び出すと、現在の日時を表す文字列を返します。
・サンプル
let str = Date(); console.log(str); >> Thu Oct 15 2020 04:33:42 GMT+0900 (日本標準時) console.log(typeof str) >> string