本頁の目次 目次

15.9 Date オブジェクト (Date Objects)

15.9.1 Date オブジェクトの概要及び内部演算子の定義 (Overview of Date Objects and Definitions of Internal Operators)

Date オブジェクトは、時間内の個々の瞬間をミリ秒で示す数で構成される。まずは NaN であることもあり、 Date オブジェクトが時間の特定の瞬間をあらわさないことを示す。

次セクションは時間値の演算のための数々の関数を定義する。 各ケースについて、その関数の引数が NaN ならば、結果は NaN となる。

15.9.1.1 時間の範囲 (Time Range)

時間は、 ECMAScript では UTC 1970 年 1 月 1 日 からのミリ秒で計測される。うるう秒は無視される。一日あたり正解に 86,400,000 秒ということにする。 ECMAScript 数値は -9,007,199,254,740,991 から 9,007,199,254,740,991 まで表現できる; この範囲は、 UTC 1970 年 1 月 1 日 を基点とする前後約 285,616 年間の任意の瞬間の、厳密なミリ秒での時間計測を可能にする。

ECMAScript Date オブジェクトがサポートする実際の時間の範囲はわずかに小さい; 厳密には、 UTC 1970 年 1 月 1 日開始時の午前零時から計測される -100,000,000 日から 100,000,000 日である。 これは UTC 1970 年 1 月 1 日 から過去未来の両側に 8,640,000,000,000,000 ミリ秒の範囲を与える。

厳密な UTC 1970 年 1 月 1 日開始時の午前零時は、値 +0 で表される。

15.9.1.2 日数及び一日内の時間 (Day Number and Time within Day)

時間値 t は日数 (day number) に属する

Day(t) = floor(t / msPerDay)

一日あたりのミリ秒数のところは

msPerDay = 86400000

残りは一日内の時間と呼ばれる:

TimeWithinDay(t) = t modulo msPerDay

15.9.1.3 年数 (Year Number)

ECMAScript は、日数の年数へのマップと一年内の月日の決定にグレゴリオ暦を用いる。このシステムでは、うるう年は正確に (4 で割り切れる) かつ ((100 で割り切れない) または (400 で割り切れる)) ような年である。それゆえ年数 y の日数は次のように定義される。

DaysInYear(y) = 365  if (y modulo 4) ≠ 0
              = 366  if (y modulo 4) = 0 and (y modulo 100) ≠ 0
              = 365  if (y modulo 100) = 0 and (y modulo 400) ≠ 0
              = 366  if (y modulo 400) = 0

非うるう年は通常の月ごとの日数で 365 日であり、うるう年は 2 月に追加日を持つ。 年 y の最初の日の日数は次に与えられる:

DayFromYear(y) = 365 × (y(1970) + floor((y(1969)/4) − floor((y(1901)/100) + floor((y−1601)/400)

年の開始の時間値は:

TimeFromYear(y) = msPerDay ( DayFromYear(y)

時間値は次によって年を決定する:

YearFromTime(t) = TimeFromYear(y) ≤ t であるような (正の無限大に最も近い) 最大整数 y

うるう年関数は、時間がうるう年内であれば 1 であり、そうでなければ 0 である:

InLeapYear(t)   = 0  if DaysInYear(YearFromTime(t)) = 365
                = 1  if DaysInYear(YearFromTime(t)) = 366

15.9.1.4 月数 (Month Number)

月は、 0 から 11 の範囲の整数で識別される。時間値 t から月数へのマッピング MonthFromTime(t) は次で定義される:

MonthFromTime(t) = 0 if   0                ≤ DayWithinYear(t)  <  31
                 = 1  if  31               ≤ DayWithinYear (t) <  59+InLeapYear(t)
                 = 2  if  59+InLeapYear(t) ≤ DayWithinYear (t) <  90+InLeapYear(t)
                 = 3  if  90+InLeapYear(t) ≤ DayWithinYear (t) < 120+InLeapYear(t)
                 = 4  if 120+InLeapYear(t) ≤ DayWithinYear (t) < 151+InLeapYear(t)
                 = 5  if 151+InLeapYear(t) ≤ DayWithinYear (t) < 181+InLeapYear(t)
                 = 6  if 181+InLeapYear(t) ≤ DayWithinYear (t) < 212+InLeapYear(t)
                 = 7  if 212+InLeapYear(t) ≤ DayWithinYear (t) < 243+InLeapYear(t)
                 = 8  if 243+InLeapYear(t) ≤ DayWithinYear (t) < 273+InLeapYear(t)
                 = 9  if 273+InLeapYear(t) ≤ DayWithinYear (t) < 304+InLeapYear(t)
                 = 10 if 304+InLeapYear(t) ≤ DayWithinYear (t) < 334+InLeapYear(t)
                 = 11 if 334+InLeapYear(t) ≤ DayWithinYear (t) < 365+InLeapYear(t)

DayWithinYear(t) は次のように定義する

DayWithinYear(t)	= Day(t)(DayFromYear(YearFromTime(t))

月の値 0 は 1 月を指す; 1 は 2 月を指す ; 2 は 3 月を指す; 3 は 4 月を指す; 4 は 5 月を指す; 5 は 6 月を指す; 6 は 7 月を指す; 7 は 8 月を指す; 8 は 9 月を指す; 9 は 10 月を指す; 10 は 11 月を指す; 11 は 12 月を指す。 MonthFromTime(0) = 0 は 1970 年 1 月 1 日木曜日 に該当することに注意。

15.9.1.5 日付数 (Date Number)

日付は、 1 から 31 の範囲の整数で識別される。時間値 t から日付数へのマッピング DateFromTime(t) は次で定義される:

DateFromTime(t) = DayWithinYear(t)+1                 if MonthFromTime(t)=0
                = DayWithinYear(t)− 30               if MonthFromTime(t)=1
                = DayWithinYear(t)− 58(InLeapYear(t) if MonthFromTime(t)=2
                = DayWithinYear(t)− 89(InLeapYear(t) if MonthFromTime(t)=3
                = DayWithinYear(t)−119(InLeapYear(t) if MonthFromTime(t)=4
                = DayWithinYear(t)−150(InLeapYear(t) if MonthFromTime(t)=5
                = DayWithinYear(t)−180(InLeapYear(t) if MonthFromTime(t)=6
                = DayWithinYear(t)−211(InLeapYear(t) if MonthFromTime(t)=7
                = DayWithinYear(t)−242(InLeapYear(t) if MonthFromTime(t)=8
                = DayWithinYear(t)−272(InLeapYear(t) if MonthFromTime(t)=9
                = DayWithinYear(t)−303(InLeapYear(t) if MonthFromTime(t)=10
                = DayWithinYear(t)−333(InLeapYear(t) if MonthFromTime(t)=11

15.9.1.6 曜日 (Week Day)

個々の時間値 t の曜日はこのように定義する。

WeekDay(t)	 = (Day(t) + 4) modulo 7

曜日値 0 は日曜日を指す; 1 は月曜日を指す; 2 は火曜日を指す; 3 は水曜日を指す; 4 は木曜日を指す; 5 は金曜日を指す; 6 は土曜日を指す。 WeekDay(0) = 4 は、 1970 年 1 月 1 日木曜日 に該当することに注意。

15.9.1.7 地方調整時 (Local Time Zone Adjustment)

ECMAScript 実装は地方調整時の決定を期待される。地方調整時は、 UTC に追加して地方標準時をあらわす、ミリ秒で測られる値 LocalTZA である。値 LocalTZA は時間によっては変わらないが、地理的な位置に依存する。

15.9.1.8 夏時間調整 (Daylight Saving Time Adjustment)

ECMAScript 実装は、夏時間調整アルゴリズムの決定を期待される。ミリ秒で測られる夏時間調整 DaylightSavingTA(t) を決定するアルゴリズムは、次の 4 点にのみ依存する:

(1)年の開始からの時間

t - TimeFromYear(YearFromTime(t))

(2)t がうるう年かどうか

InLeapYear(t)

(3)年の開始の曜日

WeekDay(TimeFromYear(YearFromTime(t))

(4)地理的な位置

ECMASciript 実装は正確な時間が夏時間に従ったか否かの決定を試みるべきではないが、その時現在の夏時間アルゴリズムが使われているならば、夏時間の影響下にあるかどうかの決定を試みるべきである。これは年回りで夏時間を認められるロケールの年を考慮するようなような煩雑さ回避する (This avoids complications such as taking into account the years that the locale observed daylight saving time year round.)。

ホスト環境が夏時間調整の決定の機能性を提供するならば、 ECMAScript 実装は、問題の年をホスト環境が夏時間調整情報を提供する同等の年 (同じ閏年で同じ曜日に開始しうる年) に自由にマップできる。同等である全ての年が同じ結果を生成するべきであるということだけ制限される。

15.9.1.9 地方時 (Local Time)

UTC から地方時への変換は

LocalTime(t) = t + LocalTZA + DaylightSavingTA(t)

地方時から UTC への変換は

UTC(t) = t - LocalTZA - DaylightSavingTA(t - LocalTZA)

UTC(LocalTime(t)) は常に t と等しいとは限らないことに注意。

15.9.1.10 時、分、秒、ミリ秒 (Hours, Minutes, Second, and Milliseconds)

次の関数が時間値の分解に使用される:

HourFromTime(t) = floor(t / msPerHour) modulo HoursPerDay
MinFromTime(t) = floor(t / msPerMinute) modulo MinutesPerHour
SecFromTime(t) = floor(t / msPerSecond) modulo SecondsPerMinute
msFromTime(t) = t modulo msPerSecond

それぞれ次のように定める:

HoursPerDay = 24
MinutesPerHour = 60
SecondsPerMinute = 60
msPerSecond = 1000
msPerMinute = msPerSecond × SecondsPerMinute = 60000
msPerHour = msPerMinute × MinutesPerHour = 3600000

15.9.1.11 MakeTime (hour, min, sec, ms)

MakeTime 演算子は、 ECMAScript 数値 でなければならない 4 つの引数から、ミリ秒の数を算出する。この演算子は次のように機能する:

  1. hour が有限でない または min が有限でない または sec が有限でない または ms が有限でない ならば、 NaN を返す。
  2. ToInteger(hour) を呼出す。
  3. ToInteger(min) を呼出す。
  4. ToInteger(sec) を呼出す。
  5. ToInteger(ms) を呼出す。
  6. IEEE 754 規則 (つまり、 ECMAScript 演算子 * と + を使うのと同様に) に従って、 Result(2) * msPerHour + Result(3) * msPerMinute + Result(4) * msPerSecond + Result(5) を算出する。
  7. Result(6) を返す。

15.9.1.12 MakeDay (year, month, date)

MakeDay 演算子は、 ECMAScript 数値 でなければならない 3 つの引数から、日数の数を算出する。この演算子は次のように機能する:

  1. year が有限でない または month が有限でない または date が有限でない ならば、 NaN を返す。
  2. ToInteger(year) を呼出す。
  3. ToInteger(month) を呼出す。
  4. ToInteger(date) を呼出す。
  5. Result(2) + floor(Result(3)/12) を算出する。
  6. Result(3) modulo 12 を算出する。
  7. YearFromTime(t) == Result(5) かつ MonthFromTime(t) == Result(6) かつ DateFromTime(t) == 1 であるような t を見つける; 見つけられない (引数のどれかが範囲外) ならば、 NaN を返す。
  8. Day(Result(7)) + Result(4) − 1 を算出する。
  9. Result(8) を返す。

15.9.1.13 MakeDate (day, time)

MakeDate 演算子は、 ECMAScript 数値 でなければならない 2 つの引数から、ミリ秒の数を算出する。この演算子は次のように機能する:

  1. day が有限でない または time が有限でない ならば、 NaN を返す。
  2. day × msPerDay + time を算出する。
  3. Result(2) を返す。

15.9.1.14 TimeClip (time)

TimeClip 演算子は、 ECMAScript 数値 でなければならない引数から、ミリ秒の数を算出する。この演算子は次のように機能する:

  1. time が有限でなければ、 NaN を返す。
  2. abs(Result(1)) > 8.64 x 1015 ならば、 NaN を返す。
  3. 実装依存で ToInteger(Result(2)) か ToInteger(Result(2)) + (+0) の選択を返す。(正の 0 を追加して −0 を +0 に変換する。)

NOTE ステップ 3 のポイントは、時間値の内部表現、例えば 符号付き 64 ビット整数、または 64 ビット浮動小数点数の値の選択を実装に許可することである。実装に依存して、この内部表現は −0 と +0 を区別してもしなくてもよい。

15.9.2 関数として呼ばれる Date コンストラクタ

コンストラクタとしてではなく関数として Date が呼出されるとき、それは現在時間 (UTC) のあらわす文字列を返す。

NOTE 関数呼出し Date(...) と、同じ引数を持つオブジェクト生成式 new Date(...) は、等価ではない。

15.9.2.1 Date ( [ year [, month [, date [, hours [, minutes [, seconds [, ms ] ] ] ] ] ] ] )

すべたの引数は選択的である; 供給された引数は受け付けるが、それ以外は無視される。文字列が生成され、式 (new Date()).toString() によるものと同様の結果が返される。

15.9.3 Date コンストラクタ

Date が new 式の一部として呼ばれる場合、それはコンストラクタである; 新規にオブジェクトを生成し、初期化する。

15.9.3.1 new Date (year, month [, date [, hours [, minutes [, seconds [, ms ] ] ] ] ] )

Date が 2 個から 7 個の引数で呼出されるとき、 year, month, (以下選択的に) date, hours, minutes, seconds , ms から、日付を算出する。

新規に構築されたオブジェクトの [[Prototype]] プロパティは、 Date.prototype (セクション 15.9.4.1) の初期値である、オリジナルの Date プロトタイプオブジェクトに設定される。

新規に構築されたオブジェクトの [[Class]] プロパティは、 "Date" に設定される。

新規に構築されたオブジェクトの [[Value]] プロパティは次のように設定される:

  1. ToNumber(year) を呼出す。
  2. ToNumber(month) を呼出す。
  3. date が供給されるならば、 ToNumber(date) を用いる; そうでなければ 1 を用いる。
  4. hours が供給されるならば、 ToNumber(hours) を用いる; そうでなければ 0 を用いる。
  5. minutes が供給されるならば、 ToNumber(minutes) を用いる; そうでなければ 0 を用いる。
  6. seconds が供給されるならば、 ToNumber(seconds) を用いる; そうでなければ 0 を用いる。
  7. ms が供給されるならば、 ToNumber(ms) を用いる; そうでなければ 0 を用いる。
  8. Result(1) が NaN でない かつ 0 ≤ ToInteger(Result(1)) ≤ 99 ならば、 Result(8) は 1900+ToInteger(Result(1)) である; そうでなければ、 Result(8) は Result(1) である。
  9. MakeDay(Result(8), Result(2), Result(3)) を算出する。
  10. MakeTime(Result(4), Result(5), Result(6), Result(7)) を算出する。
  11. MakeDate(Result(9), Result(10)) を算出する。
  12. 新規に構築されたオブジェクトの [[Value]] プロパティを、 TimeClip(UTC(Result(11))) に設定する。

15.9.3.2 new Date (value)

新規に構築されたオブジェクトの [[Prototype]] プロパティは、 Date.prototype (セクション 15.9.4.1) の初期値である、オリジナルの Date プロトタイプオブジェクトに設定される。

新規に構築されたオブジェクトの [[Class]] プロパティは、 "Date" に設定される。

新規に構築されたオブジェクトの [[Value]] プロパティは次のように設定される:

  1. ToPrimitive(value) を呼出す。
  2. Type(Result(1)) が String ならば、ステップ 5 へ。
  3. V を ToNumber(Result(1)) とする。
  4. 新しく構築されたオブジェクトの [[Value]] プロパティを、 TimeClip(V) に設定し、戻る。
  5. parse メソッドと全く同様の方法で (セクション 15.9.4.2)、 Result(1) を日付として解析する; V をこの日付の時間値とする。
  6. ステップ 4 へ。

15.9.3.3 new Date ( )

新規に構築されたオブジェクトの [[Prototype]] プロパティは、 Date.prototype (セクション 15.9.4.1) の初期値である、オリジナルの Date プロトタイプオブジェクトに設定される。

新規に構築されたオブジェクトの [[Class]] プロパティは、 "Date" に設定される。

新規に構築されたオブジェクトの [[Value]] プロパティは、現在時間 (UTC) に設定される。

15.9.4 Date コンストラクタのプロパティ

Date コンストラクタの内部 [[Prototype]] プロパティの値は、 Function プロトタイプオブジェクト (セクション 15.3.4) である。

内部プロパティと length プロパティ (値は 7) の他に、 Date コンストラクタは次のプロパティを持つ。

15.9.4.1 Date.prototype

Date.prototype の初期値は、 Date プロトタイプオブジェクト (セクション 15.9.5) である。

このプロパティは、属性 { DontEnum, DontDelete, ReadOnly } を持つ。

15.9.4.2 Date.parse (string)

parse 関数は、引数に ToString 演算子を適用し、結果の文字列を日付として解析する; 数、その日に該当する UTC 時間値を返す。文字列は地方時、 UTC 時、他のタイムゾーンの時間のどれ解析されてもよく、文字列の内容に依存する。

個々のECMAScript 実装中で ミリ秒が 0 である Date オブジェクトを x とするならば、次の全ての式がその実装中で同じ数字を生成する。全ての参照付けられたプロパティが初期値を持つならば、 then all of the following expressions should produce the same numeric value in that implementation, if all the properties referenced have their initial values:

x.valueOf()
Date.parse(x.toString())
Date.parse(x.toUTCString())

しかしながら、式

Date.parse(x.toLocaleString())

は前の3つの式と同じ数値の生成を要求されない。一般に、その実装の toString か toUTCString メソッドによって生成されえない文字列を与えられたときの Date.parse に生成される値は、実装依存である。

15.9.4.3 Date.UTC (year, month [, date [, hours [, minutes [, seconds [, ms ] ] ] ] ] )

UTC 関数が 2 個に満たない引数で呼出されたとき、振る舞いは実装依存である。 UTC 関数が 2 個から 7 個の引数で呼出されるとき、year, month, (以下選択的に) date, hours, minutes, seconds, ms から、日付を算出する。 次のステップが取られる:

  1. ToNumber(year) を呼出す。
  2. ToNumber(month) を呼出す。
  3. date が供給されるならば、 ToNumber(date) を用いる; そうでなければ 1 を用いる。
  4. hours が供給されるならば、 ToNumber(hours) を用いる; そうでなければ 0 を用いる。
  5. minutes が供給されるならば、 ToNumber(minutes) を用いる; そうでなければ 0 を用いる。
  6. seconds が供給されるならば、 ToNumber(seconds) を用いる; そうでなければ 0 を用いる。
  7. ms が供給されるならば、 ToNumber(ms) を用いる; そうでなければ 0 を用いる。
  8. Result(1) が NaN でない かつ 0 ≤ ToInteger(Result(1)) ≤ 99 ならば、 Result(8) は 1900+ToInteger(Result(1)) である; そうでなければ、 Result(8) は Result(1) である。
  9. MakeDay(Result(8), Result(2), Result(3)) を算出する。
  10. MakeTime(Result(4), Result(5), Result(6), Result(7)) を算出する。
  11. TimeClip(MakeDate(Result(9), Result(10))) を返す。

UTC 関数のの length プロパティは 7 である。

NOTE UTC 関数は Date コンストラクタとは 2 つの点で異なる: Date オブジェクト生成としてではなく、数として時間値を返す。そして地方時でなく UTC で引数を解析する。

15.9.5 Date プロトタイプオブジェクトのプロパティ

Date プロトタイプオブジェクトは、それ自身が値 NaN の Date オブジェクト ([[Class]] が "Date") である。

Date プロトタイプオブジェクトの内部 [[Prototype]] プロパティの値は、 Object プロトタイプオブジェクト (セクション 15.2.3.1) である。

この後の Date プロトタイプオブジェクトのプロパティである関数の説明において、フレーズ "この Date オブジェクト" は、関数呼出しの this 値であるオブジェクトを参照する。汎用的な関数はない; this が内部 [[Class]] プロパティの値が "Date" であるオブジェクトではないならば、例外 TypeError を投げる。また、フレーズ "この時間値" は、この Date オブジェクトに表される時間の数値、すなわち、この Date オブジェクトの内部 [[Value]] プロパティの値を参照する。

15.9.5.1 Date.prototype.constructor

Date.prototype.constructor の初期値は、組込み Date コンストラクタである。

15.9.5.2 Date.prototype.toString ( )

この関数は文字列値を返す。文字列の内容は実装依存であるが、現在のタイムゾーンの、簡便で人間に読解可能な形式の Date の表現が意図される。

NOTE 任意の Date 値 d について、 Date.prototype.parse(d.toString()) (セクション 15.9.4.2) の結果が d と等しいことが意図される。

15.9.5.3 Date.prototype.toDateString ( )

この関数は文字列値を返す。文字列の内容は実装依存であるが、現在のタイムゾーンの、簡便で人間に読解可能な形式の Date の "date" 成分の表現が意図される。

15.9.5.4 Date.prototype.toTimeString ( )

この関数は文字列値を返す。文字列の内容は実装依存であるが、現在のタイムゾーンの、簡便で人間に読解可能な形式の Date の "time" 成分の表現が意図される。

15.9.5.5 Date.prototype.toLocaleString ( )

この関数は文字列値を返す。文字列の内容は実装依存であるが、現在のタイムゾーンの、簡便で人間に読解可能な、ホスト環境の現在のロケールの慣習に該当する形式の Date の表現が意図される。

NOTE この関数の第一引数は、この標準の将来のバージョンで使用される可能性がある; 実装はこのパラメータを他の用途に使用しないことを推奨される。

15.9.5.6 Date.prototype.toLocaleDateString ( )

この関数は文字列値を返す。文字列の内容は実装依存であるが、現在のタイムゾーンの、簡便で人間に読解可能な、ホスト環境の現在のロケールの慣習に該当する形式の Date の "date" 成分の表現が意図される。

NOTE この関数の第一引数は、この標準の将来のバージョンで使用される可能性がある; 実装はこのパラメータを他の用途に使用しないことを推奨される。

15.9.5.7 Date.prototype.toLocaleTimeString ( )

この関数は文字列値を返す。文字列の内容は実装依存であるが、現在のタイムゾーンの、簡便で人間に読解可能な、ホスト環境の現在のロケールの慣習に該当する形式の Date の "time" 成分の表現が意図される。

NOTE この関数の第一引数は、この標準の将来のバージョンで使用される可能性がある; 実装はこのパラメータを他の用途に使用しないことを推奨される。

15.9.5.8 Date.prototype.valueOf ( )

valueOf 関数は、この時間値である数値を返す。

15.9.5.9 Date.prototype.getTime ( )

  1. this 値が [[Class]] プロパティが "Date" のオブジェクトでないならば、 例外 TypeError を投げる。
  2. この時間値を返す。

15.9.5.10 Date.prototype.getFullYear ( )

  1. t をこの時間値とする。
  2. t が NaN ならば、 NaN を返す。
  3. YearFromTime(LocalTime(t)) を返す。

15.9.5.11 Date.prototype.getUTCFullYear ( )

  1. t をこの時間値とする。
  2. t が NaN ならば、 NaN を返す。
  3. YearFromTime(t) を返す。

15.9.5.12 Date.prototype.getMonth ( )

  1. t をこの時間値とする。
  2. t が NaN ならば、 NaN を返す。
  3. MonthFromTime(LocalTime(t)) を返す。

15.9.5.13 Date.prototype.getUTCMonth ( )

  1. t をこの時間値とする。
  2. t が NaN ならば、 NaN を返す。
  3. MonthFromTime(t) を返す。

15.9.5.14 Date.prototype.getDate ( )

  1. t をこの時間値とする。
  2. t が NaN ならば、 NaN を返す。
  3. DateFromTime(LocalTime(t)) を返す。

15.9.5.15 Date.prototype.getUTCDate ( )

  1. t をこの時間値とする。
  2. t が NaN ならば、 NaN を返す。
  3. DateFromTime(t) を返す。

15.9.5.16 Date.prototype.getDay ( )

  1. t をこの時間値とする。
  2. t が NaN ならば、 NaN を返す。
  3. WeekDay(LocalTime(t)) を返す。

15.9.5.17 Date.prototype.getUTCDay ( )

  1. t をこの時間値とする。
  2. t が NaN ならば、 NaN を返す。
  3. WeekDay(t) を返す。

15.9.5.18 Date.prototype.getHours ( )

  1. t をこの時間値とする。
  2. t が NaN ならば、 NaN を返す。
  3. HourFromTime(LocalTime(t)) を返す。

15.9.5.19 Date.prototype.getUTCHours ( )

  1. t をこの時間値とする。
  2. t が NaN ならば、 NaN を返す。
  3. HourFromTime(t) を返す。

15.9.5.20 Date.prototype.getMinutes ( )

  1. t をこの時間値とする。
  2. t が NaN ならば、 NaN を返す。
  3. MinFromTime(LocalTime(t)) を返す。

15.9.5.21 Date.prototype.getUTCMinutes ( )

  1. t をこの時間値とする。
  2. t が NaN ならば、 NaN を返す。
  3. MinFromTime(t) を返す。

15.9.5.22 Date.prototype.getSeconds ( )

  1. t をこの時間値とする。
  2. t が NaN ならば、 NaN を返す。
  3. SecFromTime(LocalTime(t)) を返す。

15.9.5.23 Date.prototype.getUTCSeconds ( )

  1. t をこの時間値とする。
  2. t が NaN ならば、 NaN を返す。
  3. SecFromTime(t) を返す。

15.9.5.24 Date.prototype.getMilliseconds ( )

  1. t をこの時間値とする。
  2. t が NaN ならば、 NaN を返す。
  3. msFromTime(LocalTime(t)) を返す。

15.9.5.25 Date.prototype.getUTCMilliseconds ( )

  1. t をこの時間値とする。
  2. t が NaN ならば、 NaN を返す。
  3. msFromTime(t) を返す。

15.9.5.26 Date.prototype.getTimezoneOffset ( )

地方時と UTC 時の差を分で返す。

  1. t をこの時間値とする。
  2. t が NaN ならば、 NaN を返す。
  3. (t − LocalTime(t)) / msPerMinute を返す。

15.9.5.27 Date.prototype.setTime (time)

  1. this 値が Date オブジェクトでないならば、 例外 TypeError を投げる。
  2. ToNumber(time) を呼出す。
  3. TimeClip(Result(1)) を呼出す。
  4. this 値の [[Value]] プロパティを Result(2) に設定する。
  5. this 値の [[Value]] プロパティの値 を返す。

15.9.5.28 Date.prototype.setMilliseconds (ms)

  1. t を LocalTime(この時間値) の結果とする。
  2. ToNumber(ms) を呼出す。
  3. MakeTime(HourFromTime(t), MinFromTime(t), SecFromTime(t), Result(2)) を算出する。
  4. UTC(MakeDate(Day(t), Result(3))) を算出する。
  5. this 値の [[Value]] プロパティを TimeClip(Result(4)) に設定する。
  6. this 値の [[Value]] プロパティの値を返す。

15.9.5.29 Date.prototype.setUTCMilliseconds (ms)

  1. t をこの時間値とする。
  2. ToNumber(ms) を呼出す。
  3. MakeTime(HourFromTime(t), MinFromTime(t), SecFromTime(t), Result(2)) を算出する。
  4. MakeDate(Day(t), Result(3)) を算出する。
  5. this 値の [[Value]] プロパティを TimeClip(Result(4)) に設定する。
  6. this 値の [[Value]] プロパティの値を返す。

15.9.5.30 Date.prototype.setSeconds (sec [, ms ] )

ms が指定されないならば、 ms に getMilliseconds( ) の値を指定されたように振舞う。

  1. t を LocalTime(この時間値) の結果とする。
  2. ToNumber(sec) を呼出す。
  3. ms が指定されないならば、 msFromTime(t) を算出する; そうでなければ、 ToNumber(ms) を呼出す。
  4. MakeTime(HourFromTime(t), MinFromTime(t), Result(2), Result(3)) を算出する。
  5. UTC(MakeDate(Day(t), Result(4))) を算出する。
  6. this 値の [[Value]] プロパティを TimeClip(Result(5)) に設定する。
  7. this 値の [[Value]] プロパティの値を返す。

setSeconds メソッドの length プロパティは 2 である。

15.9.5.31 Date.prototype.setUTCSeconds (sec [, ms ] )

ms が指定されないならば、 ms に getUTCMilliseconds( ) の値を指定されたように振舞う。

  1. t をこの時間値とする。
  2. ToNumber(sec) を呼出す。
  3. ms が指定されないならば、 msFromTime(t) を算出する; そうでなければ、 ToNumber(ms) を呼出す。
  4. MakeTime(HourFromTime(t), MinFromTime(t), Result(2), Result(3)) を算出する。
  5. MakeDate(Day(t), Result(4)) を算出する。
  6. this 値の [[Value]] プロパティを TimeClip(Result(5)) に設定する。
  7. this 値の [[Value]] プロパティの値を返す。

setUTCSeconds メソッドの length プロパティは 2 である。

15.9.5.32 Date.prototype.setMinutes (min [, sec [, ms ] ] )

sec が指定されないならば、 sec に getSeconds( ) の値を指定されたように振舞う。

ms が指定されないならば、 ms に getMilliseconds( ) の値を指定されたように振舞う。

  1. t を LocalTime(この時間値) の結果とする。
  2. ToNumber(min) を呼出す。
  3. sec が指定されないならば、 SecFromTime(t) を算出する; そうでなければ、 ToNumber(sec) を呼出す。
  4. ms が指定されないならば、 msFromTime(t) を算出する; そうでなければ、 ToNumber(ms) を呼出す。
  5. MakeTime(HourFromTime(t), Result(2), Result(3), Result(4)) を算出する。
  6. UTC(MakeDate(Day(t), Result(5))) を算出する。
  7. this 値の [[Value]] プロパティを、 TimeClip(Result(6)) に設定する。
  8. this 値の [[Value]] プロパティの値を返す。

setMinutes メソッドの length プロパティは 3 である。

15.9.5.33 Date.prototype.setUTCMinutes (min [, sec [, ms ] ] )

sec が指定されないならば、 sec に値 getUTCSeconds( ) の値を指定されたように振舞う。

ms が指定されないならば、 ms に値 getUTCMilliseconds( ) の値を指定されたように振舞う。

  1. t をこの時間値とする。
  2. ToNumber(min) を呼出す。
  3. sec が指定されないならば、 SecFromTime(t) を算出する; そうでなければ、 ToNumber(sec) を呼出す。
  4. ms が指定されないならば、 msFromTime(t) を算出する; そうでなければ、 ToNumber(ms) を呼出す。
  5. MakeTime(HourFromTime(t), Result(2), Result(3), Result(4)) を算出する。
  6. MakeDate(Day(t), Result(5)) を算出する。
  7. this 値の [[Value]] プロパティを、 TimeClip(Result(6)) に設定する。
  8. this 値の [[Value]] プロパティの値を返す。

setUTCMinutes メソッドの length プロパティは 3 である。

15.9.5.34 Date.prototype.setHours (hour [, min [, sec [, ms ] ] ] )

min が指定されないならば、 min に getMinutes( ) の値を指定されたように振舞う。

sec が指定されないならば、 sec に getSeconds( ) の値を指定されたように振舞う。

ms が指定されないならば、 ms に getMilliseconds( ) の値を指定されたように振舞う。

  1. t を LocalTime(この時間値) の結果とする。
  2. ToNumber(hour) を呼出す。
  3. min が指定されないならば、 MinFromTime(t) を算出する; そうでなければ、 ToNumber(min) を呼出す。
  4. sec が指定されないならば、 SecFromTime(t) を算出する; そうでなければ、 ToNumber(sec) を呼出す。
  5. ms が指定されないならば、 msFromTime(t) を算出する; そうでなければ、 ToNumber(ms) を呼出す。
  6. MakeTime(Result(2), Result(3), Result(4), Result(5)) を算出する。
  7. UTC(MakeDate(Day(t), Result(6))) を算出する。
  8. this 値の [[Value]] プロパティを、 TimeClip(Result(7)) に設定する。
  9. this 値の [[Value]] プロパティの値を返す。

setHours メソッドの length プロパティは 4 である。

15.9.5.35 Date.prototype.setUTCHours (hour [, min [, sec [, ms ] ] ] )

min が指定されないならば、 min に getUTCMinutes( ) の値を指定されたように振舞う。

sec が指定されないならば、sec に getUTCSeconds( ) の値を指定されたように振舞う。

ms が指定されないならば、 ms に getUTCMilliseconds( ) の値を指定されたように振舞う。

  1. t をこの時間値とする。
  2. ToNumber(hour) を呼出す。
  3. min が指定されないならば、 MinFromTime(t) を算出する; そうでなければ、 ToNumber(min) を呼出す。
  4. sec が指定されないならば、 SecFromTime(t) を算出する; そうでなければ、 ToNumber(sec) を呼出す。
  5. ms が指定されないならば、 msFromTime(t) を算出する; そうでなければ、 ToNumber(ms) を呼出す。
  6. MakeTime(Result(2), Result(3), Result(4), Result(5)) を算出する。
  7. MakeDate(Day(t), Result(6)) を算出する。
  8. this 値の [[Value]] プロパティを、 TimeClip(Result(7)) に設定する。
  9. this 値の [[Value]] プロパティの値を返す。

setUTCHours メソッドの length プロパティは 4 である。

15.9.5.36 Date.prototype.setDate (date)

  1. t を LocalTime(this time value) の結果とする。
  2. ToNumber(date) を呼出す。
  3. MakeDay(YearFromTime(t), MonthFromTime(t), Result(2)) を算出する。
  4. UTC(MakeDate(Result(3), TimeWithinDay(t))) を算出する。
  5. this 値の [[Value]] プロパティを、 TimeClip(Result(4)) に設定する。
  6. this 値の [[Value]] プロパティの値を返す。

15.9.5.37 Date.prototype.setUTCDate (date)

  1. t をこの時間値とする。
  2. ToNumber(date) を呼出す。
  3. MakeDay(YearFromTime(t), MonthFromTime(t), Result(2)) を算出する。
  4. MakeDate(Result(3), TimeWithinDay(t)) を算出する。
  5. this 値の [[Value]] プロパティを、 TimeClip(Result(4)) に設定する。
  6. this 値の [[Value]] プロパティの値を返す。

15.9.5.38 Date.prototype.setMonth (month [, date ] )

date が指定されないならば、 date に getDate( ) の値を指定されたように振舞う。

  1. t を LocalTime(この時間値) の結果とする。
  2. ToNumber(month) を呼出す。
  3. date が指定されないならば、 DateFromTime(t) を算出する; そうでなければ、 ToNumber(date) を呼出す。
  4. MakeDay(YearFromTime(t), Result(2), Result(3)) を算出する。
  5. UTC(MakeDate(Result(4), TimeWithinDay(t))) を算出する。
  6. this 値の [[Value]] プロパティを、 TimeClip(Result(5)) に設定する。
  7. this 値の [[Value]] プロパティの値を返す。

setMonth メソッドの length プロパティは 2 である。

15.9.5.39 Date.prototype.setUTCMonth (month [, date ] )

date が指定されないならば、 date に getUTCDate( ) の値を指定されたように振舞う。

  1. t をこの時間値とする。
  2. ToNumber(month) を呼出す。
  3. date が指定されないならば、 DateFromTime(t) を算出する; そうでなければ、 ToNumber(date) を呼出す。
  4. MakeDay(YearFromTime(t), Result(2), Result(3)) を算出する。
  5. MakeDate(Result(4), TimeWithinDay(t)) を算出する。
  6. this 値の [[Value]] プロパティを、 TimeClip(Result(5)) に設定する。
  7. this 値の [[Value]] プロパティの値を返す。

setUTCMonth メソッドの length プロパティは 2 である。

15.9.5.40 Date.prototype.setFullYear (year [, month [, date ] ] )

month が指定されないならば、 month に getMonth( ) の値を指定されたように振舞う。

date が指定されないならば、 date に getDate( ) の値を指定されたように振舞う。

  1. t を LocalTime(この時間値) の結果とする; この時間値が NaN ならば、 t を +0 とする。
  2. ToNumber(year) を呼出す。
  3. month が指定されないならば、 MonthFromTime(t) を算出する; そうでなければ、 ToNumber(month) を呼出す。
  4. date が指定されないならば、 DateFromTime(t) を算出する; そうでなければ、 ToNumber(date) を呼出す。
  5. MakeDay(Result(2), Result(3), Result(4)) を算出する。
  6. UTC(MakeDate(Result(5), TimeWithinDay(t))) を算出する。
  7. this 値の [[Value]] プロパティを、 TimeClip(Result(6)) に設定する。
  8. this 値の [[Value]] プロパティの値 を返す。

setFullYear メソッドの length プロパティは 3 である。

15.9.5.41 Date.prototype.setUTCFullYear (year [, month [, date ] ] )

month が指定されないならば、 month に getUTCMonth( ) の値を指定されたように振舞う。

date が指定されないならば、 date に getUTCDate( ) の値を指定されたように振舞う。

  1. t をこの時間値とする; この時間値が NaN ならば、 t を +0 とする。
  2. ToNumber(year) を呼出す。
  3. month が指定されないならば、 MonthFromTime(t) を算出する; そうでなければ、 ToNumber(month) を呼出す。
  4. date が指定されないならば、 DateFromTime(t) を算出する; そうでなければ、 ToNumber(date) を呼出す。
  5. MakeDay(Result(2), Result(3), Result(4)) を算出する。
  6. MakeDate(Result(5), TimeWithinDay(t)) を算出する。
  7. this 値の [[Value]] プロパティを、 TimeClip(Result(6)) に設定する。
  8. this 値の [[Value]] プロパティの値を返す。

setUTCFullYear メソッドの length プロパティは 3 である。

15.9.5.42 Date.prototype.toUTCString ( )

この関数は文字列値を返す。文字列の内容は実装依存であるが、 UTC の、簡便で人間に読解可能な形式の Date の表現が意図される。

15.9.6 Date インスタンスのプロパティ (Properties of Date Instances)

Date インスタンスは、 Date プロトタイプオブジェクトから継承したプロパティの上に、特にプロパティを持たない。

Page Contents

Issued: / Revised: / All rights reserved. © 2002-2016 TAKI