Date.prototype.setFullYear()

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

Date 例項的 setFullYear() 方法根據本地時間更改此日期的年份、月份和/或月份日期。

試一試

const event = new Date("August 19, 1975 23:15:30");

event.setFullYear(1969);

console.log(event.getFullYear());
// Expected output: 1969

event.setFullYear(0);

console.log(event.getFullYear());
// Expected output: 0

語法

js
setFullYear(yearValue)
setFullYear(yearValue, monthValue)
setFullYear(yearValue, monthValue, dateValue)

引數

yearValue

一個表示年份的整數。例如,1995。

monthValue 可選

一個整數,表示月份:0 表示一月,1 表示二月,以此類推。

dateValue 可選

一個介於 1 和 31 之間的整數,表示月份中的某一天。如果指定了 dateValue,則必須同時指定 monthValue

返回值

該方法會直接修改 Date 物件,並返回其新的 時間戳。如果某個引數是 NaN(或被 強制轉換NaN 的值,如 undefined),則日期將設定為 無效日期,並返回 NaN

描述

如果您不指定 monthValuedateValue 引數,將使用 getMonth()getDate() 返回的相同值。

如果您指定的引數超出了預期範圍,其他引數和 Date 物件中的日期資訊將相應更新。例如,如果為 monthValue 指定 15,年份將增加 1(yearValue + 1),月份將使用 3。

由於 setFullYear() 在本地時間上執行,因此穿越夏令時(DST)邊界可能會導致經過的時間與預期不同。例如,如果設定日期時穿越了春季前移(損失一小時)的轉換,則新日期和舊日期之間的時戳差異將比名義上的日差乘以 24 小時少一個小時。反之,穿越秋季後移(增加一小時)的轉換將導致多出一個小時。如果您需要按固定時間量調整日期,請考慮使用 setUTCFullYear()setTime()

如果新的本地時間落在偏移量轉換範圍內,則確切時間將使用與 Temporaldisambiguation: "compatible" 選項相同的行為來確定。也就是說,如果本地時間對應兩個瞬間,則選擇較早的那個;如果本地時間不存在(存在間隙),則向前推進間隙持續的時間。

示例

使用 setFullYear()

js
const theBigDay = new Date();
theBigDay.setFullYear(1997);

規範

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

瀏覽器相容性

另見