Date.prototype.setMonth()会改变时区偏移量吗?

Alt*_*tex 3 javascript

这只发生在setMonth()方法中,而不是其他任何set*()方法.

这是我的意思的一个例子:

var date = new Date();
date.getTimezoneOffset(); // -60

date.setMonth(5);
date.getTimezoneOffset(); // -120
Run Code Online (Sandbox Code Playgroud)

这是预期的行为吗?在MDN上没有提到这一点.

编辑:

哇,我是个白痴.

Dek*_*kel 5

getTimezoneOffset方法在DST期间返回不同的值,并且在月份中5DST现在不同.

返回的时区偏移量是应用于调用它的日期的偏移量.如果主机系统配置为夏令时,则偏移量将根据日期表示的日期和时间以及夏令时适用而更改.

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)

顺便说一下,如果你将在六月份运行这段代码 - 你会发现没有区别:)