Date.prototype.setSeconds()

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

setSeconds() 方法用于 Date 实例,根据本地时间更改此日期的秒和/或毫秒。

试一试

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

event.setSeconds(42);

console.log(event.getSeconds());
// Expected output: 42

console.log(event);
// Expected output: "Sat Apr 19 1975 23:15:42 GMT+0100 (CET)"
// Note: your timezone may vary

语法

js
setSeconds(secondsValue)
setSeconds(secondsValue, msValue)

参数

secondsValue

一个介于 0 和 59 之间的整数,表示秒。

msValue 可选

一个介于 0 和 999 之间的整数,表示毫秒。

返回值

该方法会直接修改 Date 对象,并返回其新的 时间戳。如果某个参数是 NaN(或被 强制转换NaN 的值,如 undefined),则日期将设置为 无效日期,并返回 NaN

描述

如果您不指定 msValue 参数,则会使用从 getMilliseconds() 方法返回的值。

如果您指定的参数超出了预期范围,setSeconds() 会尝试相应地更新 Date 对象中的日期信息。例如,如果您为 secondsValue 使用 100,则 Date 对象中存储的分钟数将增加 1,秒数将使用 40。

由于 setSeconds() 操作的是本地时间,因此跨越夏令时 (DST) 边界可能会导致经过的时间与预期不同。例如,如果设置的秒数跨越了春季向前调整(损失一小时),则新旧日期之间的时间戳差异将比名义时间差少一个小时。反之,跨越秋季向后调整(增加一小时)将导致多出一个小时。如果您需要按固定时间量调整日期,请考虑使用 setUTCSeconds()setTime()

如果新的本地时间落在偏移量转换范围内,则确切时间将使用与 Temporaldisambiguation: "compatible" 选项相同的行为来确定。也就是说,如果本地时间对应两个瞬间,则选择较早的那个;如果本地时间不存在(存在间隙),则向前推进间隙持续的时间。

示例

使用 setSeconds()

js
const theBigDay = new Date();
theBigDay.setSeconds(30);

规范

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

浏览器兼容性

另见