下面的抽象操作函數(shù)用來操作時(shí)間值(15.9.1.1 定義)。注:任何情況下,如果這些函數(shù)之一的任意參數(shù)是 NaN,則結(jié)果將是 NaN。
一個(gè) Date 對(duì)象包含一個(gè)表示特定時(shí)間瞬間的毫秒的數(shù)字值。這樣的數(shù)字值叫做 時(shí)間值 。一個(gè)時(shí)間值也可以是 NaN,說明這個(gè) Date 對(duì)象不表示特定時(shí)間瞬間。
ECMAScript 中測(cè)量的時(shí)間是從協(xié)調(diào)世界時(shí) 1970 年 1 月 1 日開始的毫秒數(shù)。在時(shí)間值中閏秒是被忽略的,假設(shè)每天正好有 86,400,000 毫秒。ECMAScript 數(shù)字值可表示的所有從–9,007,199,254,740,991 到 9,007,199,254,740,991 的整數(shù);這個(gè)范圍足以衡量協(xié)調(diào)世界時(shí) 1970 年 1 月 1 日前后約 285,616 年內(nèi)任何時(shí)間瞬間的精確毫秒。
ECMAScript Date 對(duì)象支持的實(shí)際時(shí)間范圍是略小一些的:相對(duì)協(xié)調(diào)世界時(shí) 1970 年 1 月 1 日午夜 0 點(diǎn)的精確的–100,000,000 天到 100,000,000 天。這給出了協(xié)調(diào)世界時(shí) 1970 年 1 月 1 日前后 8,640,000,000,000,000 毫秒的范圍。
精確的協(xié)調(diào)世界時(shí) 1970 年 1 月 1 日午夜 0 點(diǎn)用 +0 表示。
一個(gè)給定時(shí)間值 t 所屬的天數(shù)是
Day(t) = floor(t / msPerDay)
其中每天的毫秒數(shù)是
msPerDay = 86400000
余數(shù)叫做天內(nèi)時(shí)間
TimeWithinDay(t) = t modulo msPerDay
ECMAScript 使用一個(gè)推算公歷系統(tǒng),來將一個(gè)天數(shù)映射到一個(gè)年數(shù),并確定在那年的月份的日期。在這個(gè)系統(tǒng)中,閏年是且僅是(可被 4 整除)且((不可被 100 整除)或(可被 400 整除))的年份。因此,y 年的天的數(shù)目定義為
DaysInYear(y) = 365 { 如果 (y 取模 4) ≠ 0 } = 366 { 如果 (y 取模 4) = 0 且 (y 取模 100) ≠ 0 } = 365 { 如果 (y 取模 100) = 0 且 (y 取模 400) ≠ 0 } = 366 { 如果 (y 取模 400) = 0 }
所有非閏年有 365 天,其中每月的天的數(shù)目是常規(guī)的。閏年的二月里有個(gè)多出來的一天。 y 年第一天的天數(shù)是 :
DayFromYear(y) = 365 × (y?1970) + floor((y?1969)/4) ? floor((y?1901)/100) + floor((y?1601)/400)
y 年的起始時(shí)間值是:
TimeFromYear(y) = msPerDay × DayFromYear(y)
一個(gè)時(shí)間值決定的年數(shù)是:
YearFromTime(t) = 滿足條件 TimeFromYear(y) ≤ t 的最大整數(shù) y (接近正無窮)
若時(shí)間值在閏年內(nèi),閏年函數(shù)返回 1,否則返回 0:
InLeapYear(t) = 0 { 如果 DaysInYear(YearFromTime(t)) = 365 } = 1 { 如果 DaysInYear(YearFromTime(t)) = 366 }
月份是由閉區(qū)間 0 到 11 內(nèi)的一個(gè)整數(shù)確定。一個(gè)時(shí)間值 t 到一個(gè)月數(shù)的映射 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) = Day(t)?DayFromYear(YearFromTime(t))
月數(shù)值 0 指一月;1 指二月;2 指三月;3 指四月;4 指五月;5 指六月;6 指七月;7 指八月;8 指九月;9 指十月;10 指十一月;11 指十二月。注:MonthFromTime(0) = 0,對(duì)應(yīng) 1970 年 1 月 1 日,星期四。
一個(gè)日期數(shù)用閉區(qū)間 1 到 31 內(nèi)的一個(gè)整數(shù)標(biāo)識(shí)。從一個(gè)時(shí)間值 t 到一個(gè)日期數(shù)的映射 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
特定時(shí)間值 t 對(duì)應(yīng)的星期數(shù)的定義為:
WeekDay(t) = (Day(t) + 4) modulo 7
星期數(shù)的值 0 指星期日;1 指星期一;2 指星期二;3 指星期三;4 指星期四;5 指星期五;6 指星期六。注:WeekDay(0) = 4, 對(duì)應(yīng) 1970 年 1 月 01 日 星期四。
期望一個(gè) ECMAScript 的實(shí)現(xiàn)確定本地時(shí)區(qū)校準(zhǔn)。本地時(shí)區(qū)校準(zhǔn)是一個(gè)毫秒為單位的值 LocalTZA,它加上 UTC 代表本地標(biāo)準(zhǔn)時(shí)間。LocalTZA 不體現(xiàn)夏令時(shí)。LocalTZA 值不隨時(shí)間改變,但只取決于地理位置。
期望一個(gè) ECMAScript 的實(shí)現(xiàn)確定夏令時(shí)算法。確定夏令時(shí)校準(zhǔn)的算法 DaylightSavingTA(t),以毫秒為單位,必須只依賴下面四個(gè)項(xiàng)目:
(1) 自本年開始以來的時(shí)間
t – TimeFromYear(YearFromTime(t))
(2) t 是否在閏年內(nèi)
InLeapYear(t)
(3) 本年第一天的星期數(shù)
WeekDay(TimeFromYear(YearFromTime(t))
(4) 地理位置。
The implementation of ECMAScript should not try to determine whether the exact time was subject to daylight saving time, but just whether daylight saving time would have been in effect if the current daylight saving time algorithm had been used at the time. This avoids complications such as taking into account the years that the locale observed daylight saving time year round.
If the host environment provides functionality for determining daylight saving time, the implementation of ECMAScript is free to map the year in question to an equivalent year (same leap-year-ness and same starting week day for the year) for which the host environment provides daylight saving time information. The only restriction is that all equivalent years should produce the same result.
從協(xié)調(diào)世界時(shí)到本地時(shí)間的轉(zhuǎn)換,定義為
LocalTime(t) = t + LocalTZA + DaylightSavingTA(t)
從本地時(shí)間到協(xié)調(diào)世界時(shí)的轉(zhuǎn)換,定義為
UTC(t) = t – LocalTZA – DaylightSavingTA(t – LocalTZA)
UTC(LocalTime(t)) 不一定總是等于 t。
以下函數(shù)用于分解時(shí)間值:
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 = 60000 = msPerSecond × SecondsPerMinute msPerHour = 3600000 = msPerMinute × MinutesPerHour
MakeTime 抽象操作用它的四個(gè)參數(shù)算出一個(gè)毫秒數(shù),參數(shù)必須是 ECMAScript 數(shù)字值。此抽象操作運(yùn)行如下:
MakeDay 抽象操作用它的三個(gè)參數(shù)算出一個(gè)天數(shù),參數(shù)必須是 ECMAScript 數(shù)字值。此抽象操作運(yùn)行如下:
MakeDate 抽象操作用它的兩個(gè)參數(shù)算出一個(gè)毫秒數(shù),參數(shù)必須是 ECMAScript 數(shù)字值。此抽象操作運(yùn)行如下:
TimeClip 抽象操作用它的參數(shù)算出一個(gè)毫秒數(shù),參數(shù)必須是 ECMAScript 數(shù)字值。此抽象操作運(yùn)行如下:
第 3 步的重點(diǎn)是說允許實(shí)現(xiàn)自行選擇時(shí)間值的內(nèi)部表示形式,如 64 位有符號(hào)整數(shù)或 64 位浮點(diǎn)數(shù)。根據(jù)不同的實(shí)現(xiàn),這個(gè)內(nèi)部表示可能區(qū)分也可能無法區(qū)分 ?0 和 +0。
ECMAScript 定義了一個(gè)基于簡(jiǎn)化的 ISO 8601 擴(kuò)展格式的日期時(shí)間的字符串互換格式,格式為:YYYY-MM-DDTHH:mm:ss.sssZ
其中個(gè)字段為:
YYYY 是公歷中年的十進(jìn)制數(shù)字。
- 在字符串中直接以“-” ( 破折號(hào) ) 出現(xiàn)兩次。
MM 是一年中的月份,從 01 ( 一月 ) 到 12 ( 十二月 )。
DD 是月份中的日期,從 01 到 30。
T 在字符串中直接以“T”出現(xiàn),用來表明時(shí)間元素的開始。
HH 是用兩個(gè)十進(jìn)制數(shù)字表示的,自午夜 0 點(diǎn)以來的小時(shí)數(shù)。
: 在字符串中直接以“:” ( 冒號(hào) ) 出現(xiàn)兩次。
mm 是用兩個(gè)十進(jìn)制數(shù)字表示的,自小時(shí)開始以來的分鐘數(shù)。
ss 是用兩個(gè)十進(jìn)制數(shù)字表示的,自分開始以來的秒數(shù)。
. 在字符串中直接以“.” ( 點(diǎn) ) 出現(xiàn)。
sss 是用三個(gè)十進(jìn)制數(shù)字表示的,自秒開始以來的毫秒數(shù)。
Z 是時(shí)區(qū)偏移量,由(“Z” ( 指 UTC) 或“+” 或 “-”)和后面跟著的時(shí)間表達(dá)式 hh:mm 組成。
這個(gè)格式包括只表示日期的形式:
YYYY YYYY-MM YYYY-MM-DD
這個(gè)格式還包括“日期時(shí)間”形式,它由上面的只表示日期的形式之一和緊跟在后面的“T”和以下時(shí)間形式之一和可選的時(shí)區(qū)偏移量組成:
THH:mm THH:mm:ss THH:mm:ss.sss
所有數(shù)字必須是 10 進(jìn)制的。如果缺少 MM 或 DD 字段,用“01”作為它們的值。如果缺少 mm 或 ss 字段,用“00”作為它們的值,對(duì)于缺少的 sss 用“000”作為它的值。對(duì)于缺少的時(shí)區(qū)偏移量用“Z”。
一個(gè)格式字符串里有非法值(越界以及語(yǔ)法錯(cuò)誤),意味著這個(gè)格式字符串不是有效的本節(jié)描述格式的實(shí)例。
由于每天的開始和結(jié)束都在午夜,倆符號(hào) 00:00 和 24:00 可區(qū)分這樣的可以是同一時(shí)間的兩個(gè)午夜。這意味著兩個(gè)符號(hào) 1995-02-04T24:00 和 1995-02-05T00:00 精準(zhǔn)的指向同一時(shí)刻。
不存在用來規(guī)范像 CET, EST 這樣的民間時(shí)區(qū)縮寫的國(guó)際標(biāo)準(zhǔn)。有時(shí)相同的縮寫甚至使用不同的時(shí)區(qū)。出于這個(gè)原因,ISO 8601 和這里的格式指定數(shù)字來表示時(shí)區(qū)。
ECMAScript 需要能表示 6 位數(shù)年份(擴(kuò)展的年份)的能力;協(xié)調(diào)世界時(shí) 1970 年 1 月 1 日前后分別約 285,616 年。對(duì)于表示 0 年之前或 9999 年之后的年份,ISO 8601 允許對(duì)年的表示法進(jìn)行擴(kuò)展,但只能在發(fā)送和接受信息的雙方有事先共同約定的情況下才能擴(kuò)展。在已經(jīng)簡(jiǎn)化的 ECMAScript 的格式中這樣擴(kuò)展的年份表示法有 2 個(gè)額外的數(shù)字和始終存在的前綴符號(hào) + 或 - 。0 年被認(rèn)為是正的,因此用 + 符號(hào)作為前綴。
擴(kuò)展年的示例
-283457-03-21T15:00:59.008Z 283458 B.C. -000001-01-01T00:00:00Z 2 B.C. +000000-01-01T00:00:00Z 1 B.C. +000001-01-01T00:00:00Z 1 A.D. +001970-01-01T00:00:00Z 1970 A.D. +002009-12-15T00:00:00Z 2009 A.D. +287396-10-12T08:59:00.992Z 287396 A.D.
當(dāng)把 Date 作為函數(shù)來調(diào)用,而不作為構(gòu)造器,它返回一個(gè)表示當(dāng)前時(shí)間(協(xié)調(diào)世界時(shí))的字符串。
函數(shù)調(diào)用 Date(…) 的結(jié)果和用相同參數(shù)調(diào)用表達(dá)式 new Date(…) 創(chuàng)建的對(duì)象是不同的。
所有參數(shù)都是可選的;接受提供的任何參數(shù),但被完全忽略。返回一個(gè)仿佛是用表達(dá)式 (new Date()).toString() 創(chuàng)建的字符串,這里的 Date 是標(biāo)準(zhǔn)內(nèi)置構(gòu)造器,toString 是標(biāo)準(zhǔn)內(nèi)置方法 Date.prototype.toString。
當(dāng)把 Date 作為 new 表達(dá)式的一部分來調(diào)用,它是個(gè)構(gòu)造器:它初始化新創(chuàng)建的對(duì)象。
當(dāng)用二到七個(gè)參數(shù)調(diào)用 Date 構(gòu)造器,它用 year, month, 還有 ( 可選的 ) date, hours, minutes, seconds, ms 來計(jì)算時(shí)間。
新構(gòu)造對(duì)象的 [[Prototype]] 內(nèi)部屬性設(shè)定為原始的時(shí)間原型對(duì)象,它是 Date.prototype(15.9.4.1) 的初始值。
新構(gòu)造對(duì)象的 [[Class]] 內(nèi)部屬性設(shè)定為 "Date"。
新構(gòu)造對(duì)象的 [[Extensible]] 內(nèi)部屬性設(shè)定為 ture。
新構(gòu)造對(duì)象的 [[PrimitiveValue]] 內(nèi)部屬性按照以下步驟設(shè)定:
新構(gòu)造對(duì)象的 [[Prototype]] 內(nèi)部屬性設(shè)定為原始的時(shí)間原型對(duì)象,它是 Date.prototype(15.9.4.1) 的初始值。
新構(gòu)造對(duì)象的 [[Class]] 內(nèi)部屬性設(shè)定為 "Date"。
新構(gòu)造對(duì)象的 [[Extensible]] 內(nèi)部屬性設(shè)定為 ture。
新構(gòu)造對(duì)象的 [[PrimitiveValue]] 內(nèi)部屬性按照以下步驟設(shè)定:
新構(gòu)造對(duì)象的 [[Prototype]] 內(nèi)部屬性設(shè)定為原始的時(shí)間原型對(duì)象,它是 Date.prototype(15.9.4.1) 的初始值。
新構(gòu)造對(duì)象的 [[Class]] 內(nèi)部屬性設(shè)定為 "Date"。
新構(gòu)造對(duì)象的 [[Extensible]] 內(nèi)部屬性設(shè)定為 ture。
新構(gòu)造對(duì)象的 [[PrimitiveValue]] 內(nèi)部屬性設(shè)定為表示當(dāng)前時(shí)間的時(shí)間值(協(xié)調(diào)世界時(shí))。
Date 構(gòu)造器的 [[Prototype]] 內(nèi)部屬性的值是函數(shù)原型對(duì)象 (15.3.4)。
除了內(nèi)部屬性和 length 屬性 ( 值為 7) 之外,Date 構(gòu)造器還有以下屬性:
Date.prototype 的初始值是內(nèi)置的 Date 原型對(duì)象 (15.9.5)。
此屬性有特性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。
parse 函數(shù)對(duì)它的參數(shù)應(yīng)用 ToString 操作并將結(jié)果字符串解釋為一個(gè)日期和時(shí)間;返回一個(gè)數(shù)字值,是對(duì)應(yīng)這個(gè)日期時(shí)間的 UTC 時(shí)間值。字符串可解釋為本地時(shí)間,UTC 時(shí)間,或某個(gè)其他時(shí)區(qū)的時(shí)間,這取決于字符串里的內(nèi)容。此函數(shù)首先嘗試根據(jù)日期時(shí)間字符串格式(15.9.1.15)里的規(guī)則來解析字符串的格式。如果字符串不符合這個(gè)格式此函數(shù)可回退,用任意實(shí)現(xiàn)定義的試探方式或日期格式。無法識(shí)別的字符串或日期時(shí)間包含非法元素值,將導(dǎo)致 Date.parse 返回 NaN。
在所有屬性都指向它們的初始值的情況下,如果 x 是一個(gè)在特定 ECMAScript 的實(shí)現(xiàn)里的毫秒數(shù)為零的任意 Date 對(duì)象,則在這個(gè)實(shí)現(xiàn)中以下所有表達(dá)式應(yīng)產(chǎn)生相同數(shù)字值:
x.valueOf()
Date.parse(x.toString())
Date.parse(x.toUTCString())
Date.parse(x.toISOString())
然而,表達(dá)式
是不需要產(chǎn)生與前面三個(gè)表達(dá)參數(shù)相同的數(shù)字值。通常,在給定的字符串不符合日期時(shí)間字符串格式(15.9.1.15)時(shí),Date.parse 的產(chǎn)生值是依賴于實(shí)現(xiàn),并且在同一實(shí)現(xiàn)中 toString 或 toUTCString 方法不能產(chǎn)生不符合日期時(shí)間字符串格式的字符串。
當(dāng)用少于兩個(gè)的參數(shù)調(diào)用 UTC 函數(shù)時(shí),它的行為是依賴于實(shí)現(xiàn)的。當(dāng)用二到七個(gè)參數(shù)調(diào)用 UTC 函數(shù),它從 year, month 和 ( 可選的 ) date, hours, minutes, seconds, ms 計(jì)算出日期時(shí)間。采用以下步驟:
UTC 函數(shù)的 length 屬性是 7。
UTC 函數(shù)與 Date 構(gòu)造器的不同點(diǎn)有:它返回一個(gè)時(shí)間值,而不是創(chuàng)建 Date 對(duì)象,還有它將參數(shù)解釋為 UTC,而不是本地時(shí)間。
now 函數(shù)返回一個(gè)數(shù)字值,它表示調(diào)用 now 時(shí)的 UTC 日期時(shí)間的時(shí)間值。
Date 原型對(duì)象自身是一個(gè) Date 對(duì)象(其 [[Class]] 是 "Date"),其 [[PrimitiveValue]] 是 NaN。
Date 原型對(duì)象的 [[Prototype]] 內(nèi)部屬性的值是標(biāo)準(zhǔn)內(nèi)置 Object 原型對(duì)象 (15.2.4)。
在以下對(duì) Date 原型對(duì)象的函數(shù)屬性的描述中,短語(yǔ)“this Date 對(duì)象”指調(diào)用函數(shù)時(shí)的 this 值對(duì)象。除非另外說明,這些函數(shù)不是通用的;如果 this 值不是 [[Class]] 內(nèi)部屬性為 "Date" 的對(duì)象,則拋出一個(gè) TypeError 異常。短語(yǔ)“this 時(shí)間值”指代表 this Date 對(duì)象的時(shí)間值的數(shù)字值,它是 this Date 對(duì)象的 [[PrimitiveValue]] 內(nèi)部屬性的值。
Date.prototype.constructor 的初始值是內(nèi)置 Date 構(gòu)造器。
此函數(shù)返回一個(gè)字符串值。字符串中內(nèi)容是依賴于實(shí)現(xiàn)的,但目的是用一種方便,人類可讀的形式表示當(dāng)前時(shí)區(qū)的時(shí)間。
對(duì)毫秒數(shù)為零的任意 Date 值 d,Date.parse(d.toString()) 和 d.valueOf() 的結(jié)果相同。見 15.9.4.2
此函數(shù)返回一個(gè)字符串值。字符串中內(nèi)容是依賴于實(shí)現(xiàn)的,但目的是用一種方便,人類可讀的形式表示當(dāng)前時(shí)區(qū)時(shí)間的“日期”部分。
此函數(shù)返回一個(gè)字符串值。字符串中內(nèi)容是依賴于實(shí)現(xiàn)的,但目的是用一種方便,人類可讀的形式表示當(dāng)前時(shí)區(qū)時(shí)間的“時(shí)間”部分。
此函數(shù)返回一個(gè)字符串值。字符串中內(nèi)容是依賴于實(shí)現(xiàn)的,但目的是用一種 -- 對(duì)應(yīng)宿主環(huán)境的當(dāng)前語(yǔ)言環(huán)境設(shè)定的 -- 方便,人類可讀的形式表示當(dāng)前時(shí)區(qū)的時(shí)間。
這個(gè)函數(shù)的第一個(gè)參數(shù)可能會(huì)在此標(biāo)準(zhǔn)的未來版本中使用到;因此建議實(shí)現(xiàn)不要以任何目的使用這個(gè)位置參數(shù)。
此函數(shù)返回一個(gè)字符串值。字符串中內(nèi)容是依賴于實(shí)現(xiàn)的,但目的是用一種 -- 對(duì)應(yīng)宿主環(huán)境的當(dāng)前語(yǔ)言環(huán)境設(shè)定的 -- 方便,人類可讀的形式表示當(dāng)前時(shí)區(qū)時(shí)間的“日期”部分。
這個(gè)函數(shù)的第一個(gè)參數(shù)可能會(huì)在此標(biāo)準(zhǔn)的未來版本中使用到;因此建議實(shí)現(xiàn)不要以任何目的使用這個(gè)位置參數(shù)。
此函數(shù)返回一個(gè)字符串值。字符串中內(nèi)容是依賴于實(shí)現(xiàn)的,但目的是用一種 -- 對(duì)應(yīng)宿主環(huán)境的當(dāng)前語(yǔ)言環(huán)境設(shè)定的 -- 方便,人類可讀的形式表示當(dāng)前時(shí)區(qū)時(shí)間的“時(shí)間”部分。
這個(gè)函數(shù)的第一個(gè)參數(shù)可能會(huì)在此標(biāo)準(zhǔn)的未來版本中使用到;因此建議實(shí)現(xiàn)不要以任何目的使用這個(gè)位置參數(shù)。
valueOf 函數(shù)返回一個(gè)數(shù)字值,它是 this 時(shí)間值。
返回本地時(shí)間和 UTC 時(shí)間之間相差的分鐘數(shù)。
沒指定 ms 參數(shù)時(shí)的行為是,仿佛 ms 被指定為調(diào)用 getMilliseconds() 的結(jié)果一樣。
setSeconds 方法的 length 屬性是 2。
沒指定 ms 參數(shù)時(shí)的行為是,仿佛 ms 被指定為調(diào)用 getUTCMilliseconds() 的結(jié)果一樣。
setUTCSeconds 方法的 length 屬性是 2。
沒指定 sec 參數(shù)時(shí)的行為是,仿佛 ms 被指定為調(diào)用 getSeconds() 的結(jié)果一樣。
沒指定 ms 參數(shù)時(shí)的行為是,仿佛 ms 被指定為調(diào)用 getMilliseconds() 的結(jié)果一樣。
setMinutes 方法的 length 屬性是 3。
沒指定 sec 參數(shù)時(shí)的行為是,仿佛 ms 被指定為調(diào)用 getUTCSeconds() 的結(jié)果一樣。
沒指定 ms 參數(shù)時(shí)的行為是,仿佛 ms 被指定為調(diào)用 getUTCMilliseconds() 的結(jié)果一樣。
setUTCMinutes 方法的 length 屬性是 3。
沒指定 min 參數(shù)時(shí)的行為是,仿佛 min 被指定為調(diào)用 getMinutes() 的結(jié)果一樣。
沒指定 sec 參數(shù)時(shí)的行為是,仿佛 ms 被指定為調(diào)用 getSeconds() 的結(jié)果一樣。
沒指定 ms 參數(shù)時(shí)的行為是,仿佛 ms 被指定為調(diào)用 getMilliseconds() 的結(jié)果一樣。
setHours 方法的 length 屬性是 4。
沒指定 min 參數(shù)時(shí)的行為是,仿佛 min 被指定為調(diào)用 getUTCMinutes() 的結(jié)果一樣。
沒指定 sec 參數(shù)時(shí)的行為是,仿佛 ms 被指定為調(diào)用 getUTCSeconds() 的結(jié)果一樣。
沒指定 ms 參數(shù)時(shí)的行為是,仿佛 ms 被指定為調(diào)用 getUTCMilliseconds() 的結(jié)果一樣。
setUTCHours 方法的 length 屬性是 4。
沒指定 date 參數(shù)時(shí)的行為是,仿佛 ms 被指定為調(diào)用 getDate() 的結(jié)果一樣。
setMonth 方法的 length 屬性是 2。
沒指定 date 參數(shù)時(shí)的行為是,仿佛 ms 被指定為調(diào)用 getUTCDate() 的結(jié)果一樣。
setUTCMonth 方法的 length 屬性是 2。
沒指定 month 參數(shù)時(shí)的行為是,仿佛 ms 被指定為調(diào)用 getMonth() 的結(jié)果一樣。
沒指定 date 參數(shù)時(shí)的行為是,仿佛 ms 被指定為調(diào)用 getDate() 的結(jié)果一樣。
setFullYear 方法的 length 屬性是 3。
沒指定 month 參數(shù)時(shí)的行為是,仿佛 ms 被指定為調(diào)用 getUTCMonth() 的結(jié)果一樣。
沒指定 date 參數(shù)時(shí)的行為是,仿佛 ms 被指定為調(diào)用 getUTCDate() 的結(jié)果一樣。
setUTCFullYear 方法的 length 屬性是 3。
此函數(shù)返回一個(gè)字符串值。字符串中內(nèi)容是依賴于實(shí)現(xiàn)的,但目的是用一種方便,人類可讀的形式表示 UTC 時(shí)間。
此函數(shù)的目的是為日期時(shí)間產(chǎn)生一個(gè)比 15.9.1.15 指定的格式更易讀的字符串表示。沒必要選擇明確的或易于機(jī)器解析的格式。如果一個(gè)實(shí)現(xiàn)沒有一個(gè)首選的人類可讀格式,建議使用 15.9.1.15 定義的格式,但用空格而不是“T”分割日期和時(shí)間元素。
此函數(shù)返回一個(gè)代表 --this Date 對(duì)象表示的時(shí)間的實(shí)例 -- 的字符串。字符串的格式是 15.9.1.15 定義的日期時(shí)間字符串格式。字符串中包含所有的字段。字符串表示的時(shí)區(qū)總是 UTC,用后綴 Z 標(biāo)記。如果 this 對(duì)象的時(shí)間值不是有限的數(shù)字值,拋出一個(gè) RangeError 異常。
此函數(shù)為 JSON.stringify (15.12.3) 提供 Date 對(duì)象的一個(gè)字符串表示。
當(dāng)用參數(shù) key 調(diào)用 toJSON 方法,采用以下步驟:
參數(shù)是被忽略的。
toJSON 函數(shù)是故意設(shè)計(jì)成通用的;它不需要其 this 值必須是一個(gè) Date 對(duì)象。因此,它可以作為方法轉(zhuǎn)移到其他類型的對(duì)象上。但轉(zhuǎn)移到的對(duì)象必須有 toISOString 方法。對(duì)象可自由使用參數(shù) key 來過濾字符串化的方式。
Date 實(shí)例從 Date 原型對(duì)象繼承屬性,Date 實(shí)例的 [[Class]] 內(nèi)部屬性值是 "Date"。Date 實(shí)例還有一個(gè) [[PrimitiveValue]] 內(nèi)部屬性。
[[PrimitiveValue]] 內(nèi)部屬性是代表 this Date 對(duì)象的時(shí)間值。
更多建議: