这只发生在setMonth()方法中,而不是其他任何set*()方法.
这是我的意思的一个例子:
var date = new Date();
date.getTimezoneOffset(); // -60
date.setMonth(5);
date.getTimezoneOffset(); // -120
Run Code Online (Sandbox Code Playgroud)
这是预期的行为吗?在MDN上没有提到这一点.
编辑:
哇,我是个白痴.
该getTimezoneOffset方法在DST期间返回不同的值,并且在月份中5与DST现在不同.
返回的时区偏移量是应用于调用它的日期的偏移量.如果主机系统配置为夏令时,则偏移量将根据日期表示的日期和时间以及夏令时适用而更改.
var date = new Date();
console.log(date.getTimezoneOffset());
date.setMonth(0);
console.log(date.getTimezoneOffset());
date.setMonth(5);
console.log(date.getTimezoneOffset());Run Code Online (Sandbox Code Playgroud)
顺便说一下,如果你将在六月份运行这段代码 - 你会发现没有区别:)