使用JavaScript获取特定时区的日期时间

时间:2012-06-20 16:48:10

标签: javascript date

似乎JavaScript的Date()函数只能返回本地日期和时间。无论如何都要为特定时区腾出时间,例如GMT-9?

结合@ Esailija和@ D3mon-1stVFW,我想出来了:你需要有两个时区偏移,一个用于本地时间,一个用于目的地时间,这是工作代码:

var today = new Date();  
var localoffset = -(today.getTimezoneOffset()/60);
var destoffset = -4; 

var offset = destoffset-localoffset;
var d = new Date( new Date().getTime() + offset * 3600 * 1000)

这里有一个例子:http://jsfiddle.net/BBzyN/3/

5 个答案:

答案 0 :(得分:21)

var offset = -8;
new Date( new Date().getTime() + offset * 3600 * 1000).toUTCString().replace( / GMT$/, "" )

"Wed, 20 Jun 2012 08:55:20"

<script>
  var offset = -8;

  document.write(
    new Date(
      new Date().getTime() + offset * 3600 * 1000
    ).toUTCString().replace( / GMT$/, "" )
  );
</script>

答案 1 :(得分:5)

var today = new Date();  
var offset = -(today.getTimezoneOffset()/60);  

答案 2 :(得分:1)

有一个简单的工作时区的库,可以在https://github.com/mde/timezone-js找到名为TimezoneJS的时区。

答案 3 :(得分:0)

您可以随时获得GMT时间(只要客户的时钟正确)。

要在任意时区显示日期,请在添加偏移后的UTC小时,分钟和秒内构建一个字符串。

答案 4 :(得分:0)

您可以在一行中完成此操作:

let d = new Date(new Date().toLocaleString("en-US", {timeZone: "timezone id"})); // timezne ex: Asia/Jerusalem
相关问题