0

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

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

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

4

1 回答 1

2

这个问题让我感到困惑,认为可能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/

于 2014-06-19T09:48:41.843 回答