我从服务器获得了一个JSON响应,其中包含以秒为单位的UTC Unix时间戳。我将其解析为JavaScript日期,并在图表中使用(以用户所在地区的时间显示)。
显然,我需要将我拥有的(UTC中的)时间戳转换为浏览器所在地区的时间,因此我编写了一个函数,在浏览器的语言环境中创建一个新的
但是,实际上并非如此。
事实证明,
显然,我需要将我拥有的(UTC中的)时间戳转换为浏览器所在地区的时间,因此我编写了一个函数,在浏览器的语言环境中创建一个新的
Date
,调用getTimezoneOffset()
方法获取当前语言环境下的“偏移量(以分钟为单位)”,根据MDN的说明,将两者都转换为毫秒,并返回它们的和。现在,我拥有了一个JavaScript友好的Unix时间戳,它以用户所在地区的时间为基准。但是,实际上并非如此。
事实证明,
(new Date()).getTimezoneOffset()
在GMT-5时返回正数300,在GMT+2时返回负数120。为什么偏移量被倒置?我本以为偏移量应该与时区的符号匹配——即:我需要减去300分钟才能到达GMT-5,而需要添加120分钟才能到达GMT+2。但实际上,我必须减去getTimezoneOffset
返回的值。