计算另一个时区的日期和时间

时间:2015-08-14 05:10:06

标签: javascript date datetime

这已经让我扭转了好几天了。

该应用程序使用JavaScript。

我希望在另一个时区的一个时区显示时间。

我会为我想要显示时间和日期的区域存储GMT的时区偏移(夏令时将考虑偏移)。

我打算将时间转换为Epoch,然后加上或减去偏移量,然后转换为DD MM YYYY HH MM SS计算日期。

我已经到了无法再看到树木的木头了。关于如何实现这一点的任何想法。

1 个答案:

答案 0 :(得分:2)

由于日期基于UTC时间值,您可以调整所需的偏移量并读取UTC值,例如

/* @param {number} offset - minutes to subtract from UTC to get time in timezone
**
*/
function getTimeForOffset(offset) {
  function z(n){return (n<10?'0':'')+n}
  var now = new Date();
  now.setUTCMinutes(now.getUTCMinutes() - offset);
  return z(now.getUTCHours()) + ':' + z(now.getUTCMinutes()) + ':' + z(now.getUTCSeconds());
}

// Time for AEST (UTC+10)
console.log(getTimeForOffset(-600));

// Time for CEST (UTC+02)
console.log(getTimeForOffset(-120));

请注意,偏移量与javascript Date时区偏移量的符号相同,这与添加到UTC以获取当地时间的典型值相反。