日付(Date)
- 日付オブジェクト
- 日付情報の取得と設定
- date.getYear() [非推奨]
- date.getFullYear()
- date.getMonth()
- date.getDate()
- date.getDay()
- date.getHours()
- date.getMinutes()
- date.getSeconds()
- date.getMilliseconds()
- date.setYear(year) [非推奨]
- date.setFullYear(year)
- date.setMonth(mon)
- date.setDate(date)
- date.setHours(hour)
- date.setMinutes(min)
- date.setSeconds(sec)
- date.setMilliseconds(msec)
- date.getUTCFullYear()
- date.getUTCMonth()
- date.getUTCDate()
- date.getUTCDay()
- date.getUTCHours()
- date.getUTCMinutes()
- date.getUTCSeconds()
- date.getUTCMilliseconds()
- date.setUTCFullYear(year)
- date.setUTCMonth(month)
- date.setUTCDate(date)
- date.setUTCHours(hour)
- date.setUTCMinutes(min)
- date.setUTCSeconds(sec)
- date.setUTCMilliseconds(msec)
- date.getTimezoneOffset()
- 文字列への変換
- 数値への変換
日付オブジェクト
date = new Date(yead, month[, day[, hour[, min[, sec[, msec]]]]])
date = new Date(time)
date = new Date(str)
date = new Date()
指定した日時を表す日付オブジェクトを生成します。月は 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();
日付情報の取得と設定
date.getYear() [非推奨]
date.getFullYear()
date.getMonth()
date.getDate()
date.getDay()
date.getHours()
date.getMinutes()
date.getSeconds()
date.getMilliseconds()
現地時刻で、年、月、日、曜日、時、分、秒、ミリ秒を取得します。曜日は日曜日(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(year) [非推奨]
date.setFullYear(year)
date.setMonth(mon)
date.setDate(date)
date.setHours(hour)
date.setMinutes(min)
date.setSeconds(sec)
date.setMilliseconds(msec)
現地時刻で、年、月、日、時、分、秒、ミリ秒を 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)
date.getUTCFullYear()
date.getUTCMonth()
date.getUTCDate()
date.getUTCDay()
date.getUTCHours()
date.getUTCMinutes()
date.getUTCSeconds()
date.getUTCMilliseconds()
世界標準時(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)
date.setUTCFullYear(year)
date.setUTCMonth(month)
date.setUTCDate(date)
date.setUTCHours(hour)
date.setUTCMinutes(min)
date.setUTCSeconds(sec)
date.setUTCMilliseconds(msec)
世界標準時(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 (日本標準時)
date.getTimezoneOffset()
UTC との現地時間の差分(分単位)を取得します。日本の場合は -9時間(-540分)となります。
var date = new Date();
date.getTimezoneOffset(); // => -540
文字列への変換
date.toString()
date.toUTCString()
date.toGMTString() [非推奨]
日時を表す文字列に変換します。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)
date.toLocaleString([locale])
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 ... ドイツ
date.toDateString()
date.toTimeString()
date.toLocaleDateString()
date.toLocaleTimeString()
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.toISOString()
date の日時を UTC として ISO 8601 に基づいたフォーマット YYYY-MM-DDThh:mm:ss.uuuZ で返します。
var date = new Date();
date.toISOString() // => 2019-03-02T00:42:16.000Z
date.toJSON()
toISOString() とほぼ同様の結果を返します。JSON.stringify() でオブジェクトを JSON 文字列に変換する際に内部的に呼ばれます。
var date = new Date();
date.toJSON() // => 2019-03-02T00:42:16.000Z
数値への変換
date.getTime()
date.valueOf()
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
date.setTime(time)
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
Date.now()
現在の日時を、1970-01-01 00:00:00(UTC)からの秒数(ミリ秒単位)で取得します。Fingerprint 攻撃を避けるために、Firefox では数ミリ秒誤差のある数値を返します。
Date.now() // => 1551189569670
Date.parse(string)
string を現地時間の文字列と解釈して得られた日時を、1970-01-01 00:00:00(UTC)からの秒数(ミリ秒単位)で取得します。string の形式は new Date(string) と同じです。
Date.parse('1999/12/31 23:59:59') // => 946652399000
Date.UTC(year, mon[, day[, hour[, min[, sec[, msec]]]]])
引数で指定した日時の、1970-01-01 00:00:00(UTC)からの秒数(ミリ秒単位)を取得します。引数は UTC で指定します。mon は 0~11で指定します。msec は JavaScript 1.3 から指定可能です。
Date.UTC(1999, 11, 31, 23, 59, 59) // => 946684799000