如果javascript“(new Date())。getTime()”是从2个不同的时区运行的

时间:2011-01-02 09:24:59

标签: javascript datetime timezone

如果同时从2个不同的时区运行JavaScript (new Date()).getTime(),您会得到相同的值吗?

此值是否会受运行浏览器的计算机上设置的系统时间的影响?

5 个答案:

答案 0 :(得分:48)

是的,它受系统时间的影响。但是,如果当地时间正确(对于计算机设置的任何时区),则在任何时区都应该相同。

ECMAScript标准说(§15.9.1.1):

  

“时间是在ECMAScript中测量的   自1970年1月1日起的毫秒数   UTC“。

答案 1 :(得分:22)

代码:

var today = new Date();
console.log(today);
var t = today.getTime();
console.log(t);

我在英国的电脑:

Sat Sep 21 2013 03:45:20 GMT+0100 (GMT Daylight Time)
1379731520112 

我的VPS:

Sat, 21 Sep 2013 02:44:31 GMT
1379731471743

getTime值之间的差异是48,369毫秒(48秒)不同步而不是1小时的区域差异

答案 2 :(得分:6)

你不会得到相同的价值 - 两个客户的浏览器之间的差异,但是如果他们的时间设置正常,你应该得到两次,因为使用{{1}获得时间戳的差异很小},你可以得到UTC值(new Date()返回自1970年1月1日以来经过的毫秒数,并且不会改变),这是通用时间并且与位置无关。

答案 3 :(得分:2)

机器之间达到的时间之间很可能总是存在偏差,但(之前我错了)JavaScript Date()将UTC时区视为默认值。

通常,当时间必不可少时,最好只需使用服务器时间,并根据需要对输出中的时区进行修正。

答案 4 :(得分:2)

如果您希望在不同时区使用与服务器相同的日期,则可能需要执行此操作:

var UTC=new Date(Date.UTC(serverYear,serverMonth-1,serverDate,0,0,0,0));