Date.prototype.setYear()

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

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") 会导致年份值被设置为 2022;而 Date.parse() 也是类似的)。
  • setFullYear() 不进行任何特殊解释,而是直接使用字面两位数的值来设置年份;因此 date.setFullYear(61) 会导致年份值被设置为 0061,而 date.setFullYear(22) 会导致年份值被设置为 0022

由于这些行为上的差异,您应该不再使用传统的 setYear() 方法,而应该使用首选的 setFullYear() 方法。

语法

js
setYear(yearValue)

参数

yearValue

一个整数。

返回值

在原处修改 Date 对象,并返回其新的 时间戳。如果 yearValueNaN(或其他被 强制转换NaN 的值,例如 undefined),则日期将被设置为 无效日期,并返回 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 语言规范
# sec-date.prototype.setyear

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参见