日付 (Date)

単一の瞬間の時間を表すJavaScriptのDateインスタンスを作成します。 Dateオブジェクトは、January 1, 1970, 00:00:00 UTC (世界協定時 - 1970年1月1日 0時0分0秒)からのミリ秒数の時間が基になります。

コンストラクタ

new Date();
new Date(value);
new Date(dateString);
new Date(year, month[, day[, hour[, minute[, second[, millisecond]]]]]);

注意: JavaScriptのDateオブジェクトは、コンストラクタとしてJavaScriptのDateを呼び出すことでしか、 インスタンス化する事が出来ません。 通常の関数(つまり、new演算子無しで)としてこれを呼び出すと、 Dateオブジェクトでは無く、文字列が返されてしまいます。 他のJavaScriptのオブジェクトのタイプとは異なり、JavaScriptのDateオブジェクトはリテラル文法を持ちません。

引数

注意: Dateが1つより多い引数付きでコンストラクタとして呼び出される際に、 値が論理範囲よりも大きい場合(例えば、13が月の値として提供される、または秒の値に70が提供される)、 その値は直近の適切な値に調節されます。 例えば、new Date(2013, 13, 1)new Date(2014, 1, 1),に相当し、 両方ともに2014年2月1日の日付が作成されます。(注意: 月の値は0始まりです。) 同様に、new Date(2013, 2, 1, 0, 70)new Date(2013, 2, 1, 1, 10)に相当し、 両方ともに2013年3月1日 1時10分0秒の日付が作成されます。

引数 説明
value 1 January 1970 00:00:00 UTC (世界協定時 - 1970年1月1日 0時0分0秒)からの経過ミリ秒を値を表す整数値を指定します。
dateString 日付を表す文字列を指定します。 この文字列はDate.parse()メソッドに認識されるフォーマットにする必要があります。 (IETF-compliant RFC 2822 timestampsversion of ISO8601)
year 「年」を表す整数値を指定します。 0~99の値が指定された場合は、1900年~1999年をマッピングします。 後述する例を参照してください。
month 「月」を表す整数値を指定します。 この値は、1月を表す0の値から始まり、12月を表す11までの値を受け取ります。
day 任意項目です。「日」を表す整数値を指定します。
hour 任意項目です。「時間」を表す整数値を指定します。
minute 任意項目です。「分」を表す整数値を指定します。
second 任意項目です。「秒」を表す整数値を指定します。
millisecond 任意項目です。「ミリ秒」を表す整数値を指定します。

説明

  • 引数が1つも提供されない場合、コンストラクタはシステム設定に沿って現在の日付と時間のJavaScriptのDateオブジェクトを作成します。
  • 少なくとも2つの引数が提供された場合は、不足している全ての引数に対して、 1(「日」が不足している場合)または0が設定されます。
  • JavaScriptの日付は、UTC(世界協定時)1970年1月1日深夜(0時0分)から経過したミリ秒の値を基準としています。 1日は、86,400,000ミリ秒に相当します。 JavaScriptのDateオブジェクトの範囲は、UTC(世界協定時)1970年1月1日深夜(0時0分)を基準に、 -100,000,000日~100,000,000日になります。
  • JavaScriptのDateオブジェクトは、プラットフォームを跨いだ一定の挙動を提供します。 「時刻」値は同じ瞬間を表現するシステム間で受け渡すことが可能であり、 ローカルの日付オブジェクトに使用される場合は、そのローカル時間に相当するものが反映されます。
  • JavaScriptのDateオブジェクトは、ローカル時間方式と同様に、UTC(ユニバーサル)方式の数値をサポートします。 UTCは、グリニッジ標準時(GMT)としても知られ、世界標準時間によって設定される時間を参照します。 ローカル時間は、JavaScriptが実行されるコンピュータが認識する時間になります。
  • 関数としての(つまり、new演算子無しで)JavaScriptのDateの実行は、 現在の日付と時刻を表す文字列を返します。

プロパティ・メソッド

  • メソッド

  • Date.UTC()

    Date.UTC()メソッドは、コンストラクタと同じ長い形式のパラメーターを受け取り、ユニバーサル時間のJanuary 1, 1970, 00:00:00 (1970年1月1日 0時0分0秒)からのDateオブジェクトのミリ秒の数値を返します。

  • Date.now()

    Date.now()メソッドは、1 January 1970 00:00:00 UTC(世界協定時 - 1970年1月1日 0時0分0秒)からの経過時間をミリ秒で返します。

  • Date.parse()

    Date.parse()メソッドは、日付を表す文字列の解析を行い、January 1, 1970, 00:00:00 UTC(世界協定時 - 1970年1月1日 0時0分0秒)からのミリ秒の数値を返します。

  • メソッド(prototype)

  • .getDate()

    getDate()メソッドは、指定された日付のローカルタイムに沿って、その月の日を返します。

  • .getDay()

    getDay()メソッドは、指定された日付のローカルタイムに沿って、日曜日を0とする、その週の曜日を返します。

  • .getFullYear()

    getFullYear()メソッドは、指定された日付のローカルタイムに沿って、その年を返します。

  • .getHours()

    getHours()メソッドは、指定された日付のローカルタイムに沿って、その時間を返します。

  • .getMilliseconds()

    getMilliseconds()メソッドは、指定された日付のローカルタイムに沿って、そのミリ秒を返します。

  • .getMinutes()

    getMinutes()メソッドは、指定された日付のローカルタイムに沿って、分を返します。

  • .getMonth()

    getMonth()メソッドは、指定されたローカルタイムに沿って、0始まり(0は年の最初の月として1月を示す)の値としての月を返します。

  • .getSeconds()

    getSeconds()メソッドは、指定されたローカルタイムに沿って、その秒を返します。

  • .getTime()

    getTime()メソッドは、指定されたユニバーサルタイムに沿って、その時間に相当する数値を返します。

  • .getTimezoneOffset()

    getTimezoneOffset()メソッドは、分の単位で現在のロケールとUTCのタイムゾーンのオフセットを返します。

  • .getUTCDate()

    getUTCDate()メソッドは、指定されたユニバーサルタイムの日付に沿って、その月の日(日付)を返します。

  • .getUTCDay()

    getUTCDay()メソッドは、指定された日付のユニバーサルタイムに沿って、日曜日を0とする、その週の曜日を返します。

  • .getUTCFullYear()

    getUTCFullYear()メソッドは、指定された日付のユニバーサルタイムに沿って、その年を返します。

  • .getUTCHours()

    getUTCHours()メソッドは、指定された日付のユニバーサルタイムに沿って、その時間を返します。

  • .getUTCMilliseconds()

    getUTCMilliseconds()メソッドは、指定された日付のユニバーサルタイムに沿って、そのミリ秒を返します。

  • .getUTCMinutes()

    getUTCMinutes()メソッドは、指定された日付のユニバーサルタイムに沿って、その分を返します。

  • .getUTCMonth()

    getUTCMonth()メソッドは、指定された日付のユニバーサルタイムに沿って、その月を返します。

  • .getUTCSeconds()

    getUTCSeconds()メソッドは、指定された日付のユニバーサルタイムに沿って、その秒を返します。

  • .getYear() 非推奨

    getYear()メソッドは、指定された日付のローカルタイムに沿って、その年を返します。getYear()は4桁の西暦を返さない(2000年問題)ため、現在は使用されず、代わりにgetFullYear()メソッドが使用されています。

  • .setDate()

    setDate()メソッドは、指定された日付のローカルタイムに沿って、その月の日を設定します。

  • .setFullYear()

    setFullYear()メソッドは、指定された日付のローカルタイムに沿って、年(西暦の全桁)を設定します。

  • .setHours()

    setHours()メソッドは、指定された日付のローカルタイムに沿って時間を設定します。

  • .setMilliseconds()

    setMilliseconds()メソッドは、指定された日付のローカルタイムに沿ってミリ秒を設定します。

  • .setMinutes()

    setMinutes()メソッドは、指定された日付のローカルタイムに沿って分を設定します。

  • .setMonth()

    setMonth()メソッドは、指定された日付のローカルタイムに沿って月を設定します。

  • .setSeconds()

    setSeconds()メソッドは、指定された日付のローカルタイムに沿って秒を設定します。

  • .setTime()

    setTime()メソッドは、DateオブジェクトへJanuary 1, 1970, 00:00:00 UTC(世界協定時 - 1970年1月1日 0時0分0秒)からのミリ秒の数値によって表される時間を設定します。

  • .setUTCDate()

    setUTCDate()メソッドは、指定された日付のユニバーサルタイムに沿ってその月の日を設定します。

  • .setUTCFullYear()

    setUTCFullYear()メソッドは、指定された日付のユニバーサルタイムに沿って年(西暦の全桁)を設定します。

  • .setUTCHours()

    setUTCHours()メソッドは、指定された日付のユニバーサルタイムに沿って時間を設定します。

  • .setUTCMilliseconds()

    setUTCMilliseconds()メソッドは、指定された日付のユニバーサルタイムに沿ってミリ秒を設定します。

  • .setUTCMinutes()

    setUTCMinutes()メソッドは、指定された日付のユニバーサルタイムに沿って分を設定します。

  • .setUTCMonth()

    setUTCMonthメソッドは、指定された日付のユニバーサルタイムに沿って月を設定します。

  • .setUTCSeconds()

    setUTCSeconds()メソッドは、指定された日付のユニバーサルタイムに沿って秒を設定します。

  • .setYear() 非推奨

    setYear()メソッドは、指定された日付のローカルタイムに沿って年を設定します。setYear()は4桁の西暦を設定しない(2000年問題)ため、現在は使用されず、代わりにsetFullYear()メソッドが使用されています。

  • .toDateString()

    toDateString()メソッドは、アメリカ英語で人が読める形式でDateオブジェクトの日付部分を返します。

  • .toISOString()

    toISOString()メソッドは、YYYY-MM-DDTHH:mm:ss.sssZの形式のISOフォーマットの文字列を返します。

  • .toJSON()

    toJSON()メソッドは、DateオブジェクトをJSON形式にしたものを返します。

  • .toLocaleDateString()

    toLocaleDateString()メソッドは、その日時を言語に沿った表現にして文字列を返します。

  • .toLocaleString()

    toLocaleString()メソッドは、その日時を言語に沿った表現にして文字列を返します。

  • .toLocaleTimeString()

    toLocaleTimeString()メソッドは、その日付の時間部分を言語に沿った表現にして文字列を返します。

  • .toString()

    toString()メソッドは、指定したDateオブジェクトを表す文字列を返します。

  • .toTimeString()

    toTimeString()メソッドは、Dateオブジェクトの人が読むことの出来るアメリカ英語での時間部分を返します。

  • .toUTCString()

    toUTCString()メソッドは、UTCタイムゾーンを使用して日付を文字列に変換します。

  • .valueOf()

    valueOf()メソッドは、Dateオブジェクトのプリミティブ値を返します。

例: Dateオブジェクトを作成する幾つかの方法

下記の例は、JavaScript日付を作成する幾つかの方法を示したものです。

var today = new Date();
var birthday = new Date('December 17, 1995 03:24:00');
var birthday = new Date('1995-12-17T03:24:00');
var birthday = new Date(1995, 11, 17);
var birthday = new Date(1995, 11, 17, 3, 24, 0);

例: 2桁の年指定による1900年~1999年のマッピングについて

0年から99年の間の日付の作成・取得を行うには、 Date.prototype.setFullYear()Date.prototype.getFullYear()を使用するべきです。

var date = new Date(98, 1); // Sun Feb 01 1998 00:00:00 GMT+0000 (GMT)

// 下記のメソッドは、同様に98を1998にマッピングする非推奨のメソッドです。
date.setYear(98);           // Sun Feb 01 1998 00:00:00 GMT+0000 (GMT)

date.setFullYear(98);       // Sat Feb 01 0098 00:00:00 GMT+0000 (BST)

例: 経過時間の計算

下記は、2つのJavaScriptの日付間の経過時間を調べる例になります。

// Dateオブジェクトを使用
var start = Date.now();

// 時間の掛かるイベント
doSomethingForALongTime();

var end = Date.now();
var elapsed = end - start; // 経過時間(ミリ秒)
// 組み込みメソッドを使用
var start = new Date();

// 時間の掛かるイベント
doSomethingForALongTime();

var end = new Date();
var elapsed = end.getTime() - start.getTime(); // 経過時間(ミリ秒)
// 関数の処理に掛かった時間を検証してログ出力し、
// 関数で得られた結果を返します。
function printElapsedTime(fTest) {
  var nStartTime = Date.now(),
      vReturn = fTest(),
      nEndTime = Date.now();

  console.log('経過時間: ' + String(nEndTime - nStartTime) + ' ミリ秒');
  return vReturn;
}

yourFunctionReturn = printElapsedTime(yourFunction);

注意: WebパフォーマンスAPIのHigh-Resolutionのtime機能をサポートするブラウザであれば、 Date.now()よりも、 経過時間のより信頼できる精密な計測を提供するPerformance.now()を使用することが出来ます。

仕様

ブラウザ互換性

デスクトップ
機能 Chrome Firefox
(Gecko)
IE Opera Safari
基本
モバイル
機能 Android Chrome for
Android
Firefox
Mobile
IE
Mobile
Opera
Mobile
Safari
Mobile
基本

ブラウザ互換性についての報告

 Back to top

© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.

このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。

  • 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
  • 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
  • MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
  • "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。