给定一个偏移量如何在javascript中将当前时间转换为UTC时间

时间:2012-04-08 11:33:35

标签: javascript

a = new Date();
Sun Apr 08 2012 16:58:03 GMT+0530 (IST)

有什么方法可以获得当前的UTC时间吗? 我想到了做数学的偏移:

b = a.getTimezoneOffset()
-330

然后减去,得到值:

c = a - b
1333884483552

但再次将c视为a看起来很困难。所以问题是: 如何在javascript中获取当前的UTC时间?

3 个答案:

答案 0 :(得分:3)

首先,JavaScript中的Date对象与时区无关。它只存储自纪元以来的毫秒数。此外,始终使用toString()get*()方法的浏览器时区。您无法在其他时区创建Date实例。

因此,只需使用getUTC*()系列方法:

new Date().getUTCHours()
new Date().getUTCMinutes()
//...

获取UTC时间。

最后但并非最不重要 - 您的代码已损坏。 a变量代表Date,并在此处转换为毫秒:c = a - b。但b等于a.getTimezoneOffset()。时区偏移量为分钟。你要从毫秒减去分钟......

另见

答案 1 :(得分:1)

如果您需要字符串,可以使用toUTCString功能。

new Date().toUTCString()

答案 2 :(得分:0)

有一个名为 jstimezonedetect 的插件,可用于检测时区。你可以找到它here

或使用日期的UTC方法,如

var now = new Date(); 
var now_utc = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(),  now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());

Demo

  

<强>输出

     

日期{2012年4月8日星期四18:31:50 GMT + 0545(尼泊尔标准时间)}

     

日期{Sun Apr 08 2012 12:46:50 GMT + 0545(尼泊尔标准时间)}