【问题标题】:Timezone offset of any time using using JavaScript Date使用 JavaScript 日期的任何时间的时区偏移
【发布时间】:2012-08-24 07:19:50
【问题描述】:

我正在使用var offset = new Date().getTimezoneOffset() 获取用户当前的时区偏移量。

但是,我怎样才能获得未来任何时间的时区偏移量?

这是必需的,因为启用/禁用DST 时时区偏移量不同。所以我不能假设未来时间的偏移量相同。

【问题讨论】:

  • 未来有什么时间吗?那个客户?
  • 这是为了在未来为用户创建一个事件。对那个客户来说是的。
  • 我不认为你能做到,即使你做到了,你怎么知道他没有动?
  • 我将在用户的当前时区创建事件。如果我知道用户在事件时间的时区偏移量,我可以在服务器上正确地将其转换为 UTC。我将始终在用户的本地时间显示事件,所以我认为用户是否移动并不重要

标签: javascript date timezone dst


【解决方案1】:

这个问题让我误以为getTimezoneOffset() 可能无法正确获取未来日期的时区偏移量。确实如此。

JavaScript而言,你给它自纪元日期以来的毫秒数,这是无处不在的,它会为你提供当地时间的偏移量因为它将在那个日期,因为所有 Date 功能关心的是获取一个通用日期/时间并传回一个对本地用户有意义的日期,除非您使用 getUTCDate() 之类的方法特别要求它提供通用等价物。

这样跑

var summer = new Date(1403170847000);
alert('Summer offset=' + summer.getTimezoneOffset());

var winter = new Date(1419500175000);
alert('Winter offset=' + winter.getTimezoneOffset());

在本地时间包含 DST 期间的控制台中,为我在英国报告夏季日期的偏移量为 -60(即 GMT+1),而在英国的日期偏移量为 0(即 GMT)冬天。

http://jsfiddle.net/SX9SN/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 2018-03-15
    • 2012-12-17
    • 2016-01-02
    • 2017-11-22
    • 2011-05-18
    • 1970-01-01
    相关资源
    最近更新 更多