Date.UTC()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
Date.UTC()
靜態方法接受與 Date
建構子相似的日期和時間元件參數,但將其視為 UTC。它會回傳自 1970 年 1 月 1 日 00:00:00 UTC 以來的毫秒數。
嘗試一下
const utcDate1 = new Date(Date.UTC(96, 1, 2, 3, 4, 5));
const utcDate2 = new Date(Date.UTC(0, 0, 0, 0, 0, 0));
console.log(utcDate1.toUTCString());
// 預期輸出:「Fri, 02 Feb 1996 03:04:05 GMT」
console.log(utcDate2.toUTCString());
// 預期輸出:「Sun, 31 Dec 1899 00:00:00 GMT」
語法
Date.UTC(year)
Date.UTC(year, monthIndex)
Date.UTC(year, monthIndex, day)
Date.UTC(year, monthIndex, day, hours)
Date.UTC(year, monthIndex, day, hours, minutes)
Date.UTC(year, monthIndex, day, hours, minutes, seconds)
Date.UTC(year, monthIndex, day, hours, minutes, seconds, milliseconds)
參數
year
-
代表年份的整數值。
0
到99
之間的值會對應到1900
到1999
年。所有其他值都是實際年份。請參見範例。 monthIndex
選擇性-
代表月份的整數值,從
0
(一月)到11
(十二月)。預設為0
。 day
選擇性-
代表月份中日期的整數值。預設為
1
。 hours
選擇性-
代表一天中小時的整數值,介於
0
到23
之間。預設為0
。 minutes
選擇性-
代表時間中分鐘部分的整數值。預設為
0
。 seconds
選擇性-
代表時間中秒數部分的整數值。預設為
0
。 milliseconds
選擇性-
代表時間中毫秒部分的整數值。預設為
0
。
回傳值
描述
介於 0
和 99
之間的年份會被轉換為 20 世紀的年份(1900 + year
)。例如,95
會被轉換為 1995
年。
UTC()
方法與 Date()
建構子有三點不同:
Date.UTC()
使用世界協調時間而非本地時間。Date.UTC()
回傳一個數字的時間值,而不是建立一個Date
物件。- 當傳入單一數字時,
Date.UTC()
會將其解釋為年份,而不是時間戳。
如果參數超出預期範圍,UTC()
方法會更新其他參數以容納該值。例如,如果 monthIndex
使用 15
,年份將會增加 1(year + 1
),而月份將使用 3
。
因為 UTC()
是 Date
的一個靜態方法,所以你總是使用 Date.UTC()
,而不是在你建立的 Date
物件上作為方法使用。
範例
>使用 Date.UTC()
以下陳述式會建立一個 Date
物件,其引數會被視為 UTC 而非本地時間:
const utcDate = new Date(Date.UTC(2018, 11, 1, 0, 0, 0));
Date.UTC() 處理單一引數的行為
當傳入單一引數時,Date.UTC()
過去的行為不一致,因為實作僅與 Date()
建構子保持行為一致,而後者不會將單一引數解釋為年份數字。現在要求實作將省略的 monthIndex
視為 0
,而不是將其強制轉換為 NaN
。
Date.UTC(2017); // 1483228800000
規範
Specification |
---|
ECMAScript® 2026 Language Specification> # sec-date.utc> |
瀏覽器相容性
Loading…