date.getTimezoneOffset()没有返回预期值
我的浏览器都在东部标准时区运行,当呼叫我打电话date.getTimezoneOffset()我期望-300要返回,而是我得到300date.getTimezoneOffset()没有返回预期值
var date = new Date();
date.getTimezoneOffset();
// returns 300
从the Mozilla docs(或devdocs.io):
返回值
的时区偏移量的区别,以分钟为单位,UTC和本地时间之间。 请注意,这意味着如果本地时区在UTC之后,则偏移量为正;如果超前,则为负值。例如,如果您的时区是UTC + 10(澳大利亚东部标准时间),则会返回-600。即使对于给定的语言环境,夏时制也可以防止该值成为常量。
EST是落后于 UTC,因此您会得到一个积极的结果。
我同意这不是一种很好的方式来表示它 - 我更习惯于偏移量是“添加到UTC以获取本地时间的时间量”,但它至少表现得像记录中的那样... 。
这是一个从UTC自己所处的时区以分钟为单位的不同UTC - EST = 300
从功能的MDN的参考说明:
的时区偏移量是UTC和当地时间之间的差异,以分钟为单位。请注意,这意味着如果本地时区在UTC之后,则偏移量为正值,如果超前,则为负值。例如,如果您的时区为UTC + 10(澳大利亚东部标准时间),则会返回-600。即使对于给定的语言环境,夏时制也可以防止该值成为常量。
这和Jon Skeet完全一样...... – TrojanMorse
我想我们在同一时间评论过...当我试图回应时没有评论。 – CaptainAdams
我想哟寻找这个 - http://stackoverflow.com/questions/21102435/why-does-javascript-date-gettimezoneoffset-consider-0500-as-a-positive-off – TrojanMorse