2011-01-02 7 views

Respuesta

46

Sí, se ve afectado por la hora del sistema. Sin embargo, si la hora local es correcta (para cualquier zona horaria en la que la computadora esté configurada), debería ser la misma en cualquier zona horaria.

El estándar ECMAScript dice (§15.9.1.1):

"El tiempo se mide en ECMAScript en milisegundos desde 01 de enero de, 1970 UTC"

6

No obtendrás el mismo valor: diferencia entre los navegadores de dos clientes que recogen la hora del sistema, pero si su tiempo está configurado correcto, deberías obtener dos veces con una diferencia mínima desde que obtuviste la marca de tiempo usando new Date(), puede obtener el valor UTC (new Date() devuelve el número de milisegundos transcurridos desde el 1 de enero de 1970, y eso no cambiará), que es la hora universal y es independiente de la ubicación.

2

Lo más probable es que siempre haya una desviación entre los tiempos alcanzados entre las máquinas, pero (antes me equivocaba) JavaScript Date() toma la zona horaria UTC como predeterminada.

Por lo general, cuando el tiempo es esencial, lo mejor es simplemente utilizar la hora del servidor y aplicar correcciones de zona horaria a la salida si es necesario.

+0

Esto es incorrecto. Siempre que la hora local sea correcta, la zona horaria no importa. –

+0

Habla de diferentes zonas horarias que tendrán diferentes horarios locales a menos que alguien elija compensar su hora local desde su zona horaria para corresponder con otra zona horaria. – BGerrissen

+0

'getTime' no devuelve la hora local, sin embargo. Siempre que la hora local esté configurada correctamente (para cualquier zona horaria en que esté la computadora), la hora UTC devuelta por 'getTime' también será correcta. –

1

Es posible que desee hacer esto si desea que la misma fecha que su servidor a través de diferentes zonas horarias:

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

Código:

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

Mi PC en el Reino Unido:

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

Mi VPS:

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

diferencia entre los valores GetTime es 48.369 milisegundos (48s) fuera de sincronización no la diferencia de la zona 1 hora

+4

un experimento es siempre una buena manera de probar cosas –

Cuestiones relacionadas