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时间?
答案 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());
<强>输出强>
日期{2012年4月8日星期四18:31:50 GMT + 0545(尼泊尔标准时间)}
日期{Sun Apr 08 2012 12:46:50 GMT + 0545(尼泊尔标准时间)}