Date オブジェクトは、日時情報、および、UTC からのタイムオフセット情報を保持するオブジェクトです。
Date オブジェクトは、Date
コンストラクタを使用して次のように生成することができます。
var d = new Date();
var d = new Date(2018, 0, 31, 19, 30, 55); // 2018年1月31日19時30分55秒
年月より後ろのパラメータは省略することができます(1日00時00分00秒とみなされる)。
getFullYear()
が用意されています(混乱を招くので getYear()
は非推奨)。
var d = new Date(Date.UTC(2018, 0, 31)); // 2018年1月31日
Date.UTC()
関数の戻り値はタイムスタンプ(ミリ秒)です。
上記では、このタイムスタンプを Date
コンストラクタに渡しています。
var d1 = new Date('1995-12-17');
var d2 = new Date('1995-12-17T03:24:00Z');
文字列から Date オブジェクトを生成する方法は、ブラウザごとに振る舞いが異なるため非推奨とされています。 文字列は自力でパースするか、何らかの外部ライブラリを使用してくださいとのこと。 どうしても使用するなら、ECMA-262 / ISO8601 - Date Time String Format で定義されているフォーマットを使用するとよいでしょう。
2018
2018-01
2018-01-31
2018-01-31T19:30
2018-01-31T19:30:55
2018-01-31T19:30:55Z
2018-01-31T19:30:55+09:00
協定世界時 (UTC) の 1970 年 1 月 1 日 00:00:00 からの経過時間をミリ秒単位の数値で取得したいときは、Date オブジェクトの getTime()
メソッドを使用します。
var d = new Date();
var timestamp = d.getTime(); //=> 1522828862750
上記のように取得したタイムスタンプから Date オブジェクトを生成することができます。
var d = new Date(timestamp);
他にも、Date クラスには、タイムスタンプを取得するためのスタティックな関数が用意されています。
var timestamp1 = Date.now(); // 現在時刻
var timestamp2 = Date.UTC(2018, 0, 31, 19, 30, 55); // UTC で 2018年1月31日19時30分55秒
var timestamp3 = Date.parse('04 Dec 1995 00:12:00 GMT'); // 非推奨
Date クラスのこれらのスタティック関数は、必ずタイムスタンプ(ミリ秒)を返すように定義されています。
Date オブジェクトを生成したい場合は、コンストラクタ (new Date()
) を使用する必要があることに注意してください。
Date オブジェクトには、年月日時分秒の情報を「ローカルタイム」あるいは、「協定世界時(UTC)」で取得するメソッドが用意されています。
Date メソッド | 説明 |
---|---|
getFullYear() | 「年」(4 桁までの年) |
getMonth() | 「月」(0-11) ※ |
getDate() | 「日」(1-31) |
getHours() | 「時」(0-23) |
getMinutes() | 「分」(0-59) |
getSeconds() | 「秒」(0-59) |
getMilliseconds() | 「ミリ秒」(0-999) |
getDay() | 「曜日」(0:日曜日~6:土曜日) |
getTimezoneOffset() | 協定世界時からのオフセットを分で返します |
※月が 1~12 ではなく、0~11 であることに注意してください(0は1月、11は12月を表します)。
Date メソッド | 説明 |
---|---|
getUTCFullYear() | 「年」(4 桁までの年) |
getUTCMonth() | 「月」(0-11) ※ |
getUTCDate() | 「日」(1-31) |
getUTCHours() | 「時」(0-23) |
getUTCMinutes() | 「分」(0-59) |
getUTCSeconds() | 「秒」(0-59) |
getUTCMilliseconds() | 「ミリ秒」(0-999) |
getUTCDay() | 「曜日」(0:日曜日~6:土曜日) |