此頁面由社群從英文翻譯而來。了解更多並加入 MDN Web Docs 社群。
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® 2027 Language Specification> # sec-date.utc> |
