now new moment from javascript datetime timezone

moment - Si javascript "(new Date()). GetTime()" se ejecuta desde 2 diferentes zonas horarias



moment js (5)

Si JavaScript (new Date()).getTime() se ejecuta desde 2 diferentes zonas horarias simultáneamente, ¿obtendrá el mismo valor?

¿Se verá afectado este valor por la hora del sistema establecida en la máquina donde se está ejecutando el navegador?


Código:

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

Mi computadora 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

La diferencia entre los valores de getTime es 48,369 milisegundos (48s) fuera de sincronización, no la diferencia de zona de 1 hora


Es posible que desee hacer esto si desea la misma fecha que su servidor en diferentes zonas horarias:

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


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 de forma correcta, deberías obtener dos veces con una diferencia mínima desde que obtuviste la marca de tiempo con la new Date() . 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.


Probablemente siempre habrá una desviación entre los tiempos alcanzados entre las máquinas, pero (me equivoqué antes) JavaScript Date () toma la zona horaria UTC como predeterminada.

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


Sí, se ve afectado por el tiempo 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 el 1 de enero de 1970 UTC".