指定した日時を表す日付オブジェクトを生成します。月は 0~11 の範囲で指定してください。msec は JavaScript 1.3 から利用できます。
date = new Date(1999, 11); // => 1999-12-01 00:00:00.000 date = new Date(1999, 11, 31); // => 1999-12-31 00:00:00.000 date = new Date(1999, 11, 31, 23); // => 1999-12-31 23:00:00.000 date = new Date(1999, 11, 31, 23, 59); // => 1999-12-31 23:59:00.000 date = new Date(1999, 11, 31, 23, 59, 59); // => 1999-12-31 23:59:59.000 date = new Date(1999, 11, 31, 23, 59, 59, 999); // => 1999-12-31 23:59:59.999
time には、1970-01-01 00:00:00(UTC)からの秒数(ミリ秒単位)を指定します。
date = new Date(946652399000);
文字列 str を指定することも可能です。フォーマットは、RFC 2822 や ISO 8601 などを参考にしていますが、ブラウザやバージョンや地域設定により解釈可能なフォーマットが異なります。
date = new Date("Fri, Dec 03, 1999 23:59:59 +0900"); // RFC 2822 date = new Date("Dec 3, 1999 23:59"); // RFC 2822 date = new Date("1999-12-31T23:59:59+0900"); // ISO 8601 date = new Date("1999-12-31T23:59:59"); // ISO 8601 date = new Date("1999/12/31 23:59:59"); date = new Date("12/31/1999 23:59:59"); date = new Date("99/12/31 23:59:59"); date = new Date("12/31/99 23:59:59");
日時を省略した場合は現在の日時となります。
date = new Date();
現地時刻で、年、月、日、曜日、時、分、秒、ミリ秒を取得します。曜日は日曜日(0)~土曜日(6)までの値。月は 1月を 0 と数え、1月(0)~12月(11) の数値を返します。
var date = new Date();
var str = date.getFullYear()
+ '/' + ('0' + (date.getMonth() + 1)).slice(-2)
+ '/' + ('0' + date.getDate()).slice(-2)
+ ' ' + ('0' + date.getHours()).slice(-2)
+ ':' + ('0' + date.getMinutes()).slice(-2)
+ ':' + ('0' + date.getSeconds()).slice(-2)
+ '(JST)';
console.log(str); // => 2019/03/03 13:08:52(JST)
getYear() は、ブラウザやバージョンにより、1999年からの差分または 4桁の西暦を返すなど動作がまちまちなので、代わりに getFullYear() を使用してください。
var date = new Date(2019, 12, 31, 23, 59, 59);
date.getYear(); // ブラウザやバージョンにより 119 だったり 2019 だったり
現地時刻で、年、月、日、時、分、秒、ミリ秒を date に設定します。setYear() は西暦を下2桁で指定しますが非推奨となりました。代わりに西暦を4桁で示す setFullYear() を使用してください。
var date = new Date();
date.setFullYear(1999);
date.setMonth(11);
date.setDate(31);
date.setHours(23);
date.setMinutes(59);
date.setSeconds(59);
date.setMilliseconds(0);
console.log(date); // => 1999/12/31 23:59:59(JST)
世界標準時(UTC)で、年、月、日、曜日、時、分、秒、ミリ秒を取得します。
var date = new Date();
var str = date.getUTCFullYear()
+ '/' + ('0' + (date.getUTCMonth() + 1)).slice(-2)
+ '/' + ('0' + date.getUTCDate()).slice(-2)
+ ' ' + ('0' + date.getUTCHours()).slice(-2)
+ ':' + ('0' + date.getUTCMinutes()).slice(-2)
+ ':' + ('0' + date.getUTCSeconds()).slice(-2)
+ '(UTC)';
console.log(str); // => 2019/03/03 04:08:52(UTC)
世界標準時(UTC)で、年、月、日、曜日、時、分、秒、ミリ秒を date に設定します。
var date = new Date();
date.setUTCFullYear(1999);
date.setUTCMonth(11);
date.setUTCDate(31);
date.setUTCHours(23);
date.setUTCMinutes(59);
date.setUTCSeconds(59);
date.setUTCMilliseconds(0);
console.log(date); // => Sat Jan 01 2000 08:59:59 GMT+0900 (日本標準時)
UTC との現地時間の差分(分単位)を取得します。日本の場合は -9時間(-540分)となります。
var date = new Date();
date.getTimezoneOffset(); // => -540
日時を表す文字列に変換します。toString()、toLocaleString() は現地時刻、toUTCString() や toGMTString() は世界標準時(UTC)に変換します。
var date = new Date(); date.toString(); // => Wed Feb 27 2019 01:04:04 GMT+0900 (日本標準時) date.toGMTString(); // => Tue, 26 Feb 2019 16:04:04 GMT date.toUTCString(); // => Tue, 26 Feb 2019 16:04:04 GMT
フォーマットはブラウザやバージョンや地域設定によって様々に異なります。
12/31/00 23:59:59 // Ineternet Explorer 3 12/31/2000 23:59:59 // Ineternet Explorer 4-? 2000/12/31 23:59:59 // Ineternet Explorer ?-11(JST) 12/31/00 23:59:59 // Netscape Navigator -4.05(win) Sunday, December 31, 2000 23:59:59 // Netscape Navigator 4.7(Win) Dec 31 23:59:59 2000 // Netscape Navigator 4.7(mac) Sun 31 Dec 2000 11:59:59 PM JST // Netscape Navigator 4.7(UNIX)
toLocaleString() では、下記の様に各国に応じたフォーマットに変換することができます。
var date = new Date(); date.toLocaleString("ja"); // => 2019/2/28 23:59:59 ... 日本 date.toLocaleString("zh-cn"); // => 2019/2/28 下午11:59:59 ... 中国 date.toLocaleString("ko"); // => 2019. 2. 28. 오후 11:41:52 ... 韓国 date.toLocaleString("en"); // => 2/28/2019, 11:41:52 PM ... 米国 date.toLocaleString("fr"); // => 28/02/2019 à 23:41:52 ... フランス date.toLocaleString("de"); // => 28.2.2019, 23:41:52 ... ドイツ
toDateString(), toLocaleDateString() は date の日付のみを文字列に変換します。toTimeString(), toLocaleTimeString() は date の時刻のみを文字列に変換します。toDateString(), toTimeString() は UTC、toLocaleDateString(), toLocaleTimeString() は現地時刻で返します。フォーマットはブラウザやバージョンや地域設定によって様々に異なります。
var date = new Date(); date.toDateString() // => Sat Mar 02 2019 date.toTimeString() // => 09:42:16 GMT+0900 (日本標準時) date.toLocaleDateString() // => 2019/3/2 date.toLocaleTimeString() // => 9:42:16
date の日時を UTC として ISO 8601 に基づいたフォーマット YYYY-MM-DDThh:mm:ss.uuuZ で返します。
var date = new Date();
date.toISOString() // => 2019-03-02T00:42:16.000Z
toISOString() とほぼ同様の結果を返します。JSON.stringify() でオブジェクトを JSON 文字列に変換する際に内部的に呼ばれます。
var date = new Date();
date.toJSON() // => 2019-03-02T00:42:16.000Z
getTime() は date で与えられた日時を、1970-01-01 00:00:00(UTC)からの秒数(ミリ秒単位)で取得します。valueOf() は date のプリミティブ値を取得しますが機能的には getTime() と同じです。
var date = new Date('1999/12/31 23:59:59');
date.getTime(); // => 946652399000
time を 1970-01-01 00:00:00(UTC)からの秒数(ミリ秒単位)とみなし、date に設定します。下記の例では、date よりも24時間後の日時を date に設定しています。
var date = new Date('1999/12/31 23:59:59');
var time = date.getTime();
time += 24 * 60 * 60 * 1000;
date.setTime(time); // => 2000/01/01 23:59:59
現在の日時を、1970-01-01 00:00:00(UTC)からの秒数(ミリ秒単位)で取得します。Fingerprint 攻撃を避けるために、Firefox では数ミリ秒誤差のある数値を返します。
Date.now() // => 1551189569670
string を現地時間の文字列と解釈して得られた日時を、1970-01-01 00:00:00(UTC)からの秒数(ミリ秒単位)で取得します。string の形式は new Date(string) と同じです。
Date.parse('1999/12/31 23:59:59') // => 946652399000
引数で指定した日時の、1970-01-01 00:00:00(UTC)からの秒数(ミリ秒単位)を取得します。引数は UTC で指定します。mon は 0~11で指定します。msec は JavaScript 1.3 から指定可能です。
Date.UTC(1999, 11, 31, 23, 59, 59) // => 946684799000