Date.UTC()

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨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());
// Expected output: "Fri, 02 Feb 1996 03:04:05 GMT"

console.log(utcDate2.toUTCString());
// Expected output: "Sun, 31 Dec 1899 00:00:00 GMT"

語法

js
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)

引數

表示年份的整數值。值為 099 的,對映到 19001999 年。所有其他值表示實際年份。請參閱 示例

monthIndex 可選

表示月份的整數值,從 0(一月)到 11(十二月)。預設為 0

day 可選

表示月份中的日期的整數值。預設為 1

hours 可選

表示一天中小時的整數值,介於 023 之間。預設為 0

minutes 可選

表示時間中分鐘部分的整數值。預設為 0

seconds 可選

表示時間中秒部分的整數值。預設為 0

milliseconds 可選

表示時間中毫秒部分的整數值。預設為 0

返回值

一個表示給定日期的 時間戳 的數字。如果日期 無效,則返回 NaN

描述

值為 099 的年份將被轉換為 20 世紀的年份 (1900 + year)。例如,95 將被轉換為 1995 年。

UTC() 方法與 Date() 建構函式在三方面有所不同:

  1. Date.UTC() 使用通用時間而不是本地時間。
  2. Date.UTC() 返回一個數字格式的時間值,而不是建立一個 Date 物件。
  3. 當傳入單個數字時,Date.UTC() 將其解釋為年份而不是時間戳。

如果引數超出預期範圍,UTC() 方法會更新其他引數以適應該值。例如,如果 monthIndex 使用 15,則年份將增加 1 (year + 1),月份將使用 3

由於 UTC()Date 的一個靜態方法,您應始終將其用作 Date.UTC(),而不是您建立的 Date 物件的某個方法。

示例

使用 Date.UTC()

以下語句建立一個 Date 物件,其中引數被視為 UTC 而非本地時間。

js
const utcDate = new Date(Date.UTC(2018, 11, 1, 0, 0, 0));

Date.UTC() 單個引數的行為

Date.UTC() 在只接受一個引數時,過去的行為不一致,因為實現只保持與 Date() 建構函式一致的行為,後者不將單個引數解釋為年份數字。現在要求實現將省略的 monthIndex 視為 0,而不是將其強制轉換為 NaN

js
Date.UTC(2017); // 1483228800000

規範

規範
ECMAScript® 2026 語言規範
# sec-date.utc

瀏覽器相容性

另見