date.getTimezoneOffset()没有返回预期值

问题描述:

我的浏览器都在东部标准时区运行,当呼叫我打电话date.getTimezoneOffset()我期望-300要返回,而是我得到300date.getTimezoneOffset()没有返回预期值

var date = new Date(); 
date.getTimezoneOffset(); 
// returns 300 
+1

我想哟寻找这个 - http://stackoverflow.com/questions/21102435/why-does-javascript-date-gettimezoneoffset-consider-0500-as-a-positive-off – TrojanMorse

the Mozilla docs(或devdocs.io):

返回值
的时区偏移量的区别,以分钟为单位,UTC和本地时间之间。 请注意,这意味着如果本地时区在UTC之后,则偏移量为正;如果超前,则为负值。例如,如果您的时区是UTC + 10(澳大利亚东部标准时间),则会返回-600。即使对于给定的语言环境,夏时制也可以防止该值成为常量。

EST是落后于 UTC,因此您会得到一个积极的结果。

我同意这不是一种很好的方式来表示它 - 我更习惯于偏移量是“添加到UTC以获取本地时间的时间量”,但它至少表现得像记录中的那样... 。

这是一个从UTC自己所处的时区以分钟为单位的不同UTC - EST = 300

从功能的MDN的参考说明:

的时区偏移量是UTC和当地时间之间的差异,以分钟为单位。请注意,这意味着如果本地时区在UTC之后,则偏移量为正值,如果超前,则为负值。例如,如果您的时区为UTC + 10(澳大利亚东部标准时间),则会返回-600。即使对于给定的语言环境,夏时制也可以防止该值成为常量。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset

+0

这和Jon Skeet完全一样...... – TrojanMorse

+0

我想我们在同一时间评论过...当我试图回应时没有评论。 – CaptainAdams