日付(Date)

[up] [prev] [next]

目次

日付オブジェクト

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 から利用できます。

JavaScript
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)からの秒数(ミリ秒単位)を指定します。

JavaScript
date = new Date(946652399000);

文字列 str を指定することも可能です。フォーマットは、RFC 2822 や ISO 8601 などを参考にしていますが、ブラウザやバージョンや地域設定により解釈可能なフォーマットが異なります。

JavaScript
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");

日時を省略した場合は現在の日時となります。

JavaScript
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) の数値を返します。

JavaScript
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() を使用してください。

JavaScript
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() を使用してください。

JavaScript
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)で、年、月、日、曜日、時、分、秒、ミリ秒を取得します。

JavaScript
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 に設定します。

JavaScript
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分)となります。

JavaScript
var date = new Date();
date.getTimezoneOffset();                  // => -540

文字列への変換

date.toString()
date.toUTCString()
date.toGMTString() [非推奨]

日時を表す文字列に変換します。toString()、toLocaleString() は現地時刻、toUTCString() や toGMTString() は世界標準時(UTC)に変換します。

JavaScript
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

フォーマットはブラウザやバージョンや地域設定によって様々に異なります。

JavaScript
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() では、下記の様に各国に応じたフォーマットに変換することができます。

JavaScript
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() は現地時刻で返します。フォーマットはブラウザやバージョンや地域設定によって様々に異なります。

JavaScript
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 で返します。

JavaScript
var date = new Date();
date.toISOString()                  // => 2019-03-02T00:42:16.000Z
date.toJSON()

toISOString() とほぼ同様の結果を返します。JSON.stringify() でオブジェクトを JSON 文字列に変換する際に内部的に呼ばれます。

JavaScript
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() と同じです。

JavaScript
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 に設定しています。

JavaScript
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 では数ミリ秒誤差のある数値を返します。

JavaScript
Date.now()                                     // => 1551189569670
Date.parse(string)

string を現地時間の文字列と解釈して得られた日時を、1970-01-01 00:00:00(UTC)からの秒数(ミリ秒単位)で取得します。string の形式は new Date(string) と同じです。

JavaScript
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 から指定可能です。

JavaScript
Date.UTC(1999, 11, 31, 23, 59, 59)             // => 946684799000

[up] [prev] [next]
Copyright (C) 1996-2019 杜甫々
改訂版初版:2001年5月20日、最終更新:2019年3月3日
http://www.tohoho-web.com/js/date.htm