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 时间?
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 时间?
首先,Date
JavaScript 中的对象是时区无关的。它只存储自纪元以来的毫秒数。此外,它总是使用浏览器时区toString()
和get*()
方法。您不能Date
在不同的时区创建实例。
因此只需使用getUTC*()
一系列方法:
new Date().getUTCHours()
new Date().getUTCMinutes()
//...
以获取 UTC 时间。
最后但同样重要的是 - 您的代码已损坏。a
变量表示Date
并在此处转换为毫秒:c = a - b
. 然而b
等于a.getTimezoneOffset()
。时区偏移量以分钟为单位。您正在从毫秒中减去分钟...
toUTCString
如果需要字符串,可以使用该函数。
new Date().toUTCString()
有一个名为jstimezonedetect的插件,您可以使用它来检测时区。你可以在这里找到
或使用日期的 UTC 方法,如
var now = new Date();
var now_utc = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());
输出
日期 {Sun Apr 08 2012 18:31:50 GMT+0545(尼泊尔标准时间)}
日期 {Sun Apr 08 2012 12:46:50 GMT+0545(尼泊尔标准时间)}