Date.prototype.setYear()

已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。

setYear() 方法用于根据本地时间为指定的 Date 实例设置年份。

然而,旧的 setYear() 方法设置年份值的方式与推荐的 setFullYear() 方法不同,在某些情况下也与 new Date()Date.parse() 设置年份值的方式不同。具体来说,对于两位数,例如 2261

  • setYear() 将任何两位数解释为 1900 的偏移量;因此 date.setYear(22) 会将年份值设置为 1922,而 date.setYear(61) 会将年份值设置为 1961。(相比之下,虽然 new Date(61, 1) 也会将年份值设置为 1961,但 new Date("2/1/22") 会将年份值设置为 2022Date.parse() 类似。)

  • setFullYear() 不会进行特殊解释,而是将两位数的字面值按原样设置为年份;因此 date.setFullYear(61) 会将年份值设置为 0061,而 date.setFullYear(22) 会将年份值设置为 0022

由于这些行为差异,您应该不再使用旧的 setYear() 方法,而应该使用推荐的 setFullYear() 方法。

语法

js
setYear(yearValue)

参数

yearValue

一个整数。

返回值

该方法会就地修改 Date 对象,并返回其新的 时间戳。如果 yearValueNaN(或被 强制转换为 NaN 的值,例如 undefined),则日期将被设置为 Invalid Date,并返回 NaN

描述

如果 yearValue 是一个介于 0 到 99(含)之间的数字,则 dateObj 的年份将被设置为 1900 + yearValue。否则,dateObj 的年份将被设置为 yearValue

示例

使用 setYear()

前两行将年份设置为 1996。第三行将年份设置为 2000。

js
const theBigDay = new Date();

theBigDay.setYear(96);
theBigDay.setYear(1996);
theBigDay.setYear(2000);

规范

规范
ECMAScript® 2026 语言规范
# sec-date.prototype.setyear

浏览器兼容性

另见