我试过了:
var d = new date();
let diff = d.getTimezoneOffset(); // -330
我得到的差值是-330分钟,但是,当前的UTC差是+330分钟。
getTimezoneOffset()
返回UTC与本地时间之间的分钟差。
例如,如果您的时区是GMT+2,则返回-120。
来自文档
时区偏移量是以分钟为单位的UTC和本地时间之间的差值。请注意,这意味着如果本地时区落后于UTC,则偏移量为正,如果超前于UTC,则偏移量为负。
如果出于某种原因你需要相反的,比如如果你得到-330而你需要+330,你总是可以做
diff *= -1; // This will invert the sign of the value.
getTimezoneOffset()
方法返回差值,以分钟为单位,在UTC时区计算的日期与在UTC时区计算的日期之间在本地时区计算。
(来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset)
由此得到:UTC
-LocalDate
=TimeZoneOffset
。
举个例子:目前在德国是05:00
,我们是GMT+2
,所以在UTC
是03:00
。
3 - 5 = -2 * 60 = -120
这是很简单的数学。基本上你只需要*-1
的结果…