sacar obtener mostrar hora fecha capturar año actual javascript web-services timezone

mostrar - obtener hora utc javascript



Mostrar hora local precisa en el sitio web? (5)

Me han pedido que muestre la hora "correcta" en nuestro sitio web, lo que francamente siento que no tiene sentido ya que "correcto" se puede interpretar de muchas maneras.

Nuestro método actual definitivamente da como resultado un tiempo impreciso ya que utiliza un JavaScript de representación de control del servidor que se ejecuta onload usando el datetime del servidor como parámetro para crear un objeto de reloj en JavaScript que finalmente se renderiza en la página y luego comienza a incrementar el reloj. Entre el procesamiento del servidor, la latencia de la red y el rendimiento del lado del cliente (hay muchas otras cosas en ejecución), el reloj termina muy lejos del tiempo real del servidor y quién sabe si se lo compara con la PC del cliente.

Entonces, para obtener el tiempo "correcto" que se me mostró, pude;

  • Use la hora local de PC y pase una nueva fecha () al objeto de reloj de JavaScript. Pros: debe estar lo más cerca posible del reloj de PC. Contras: No estoy seguro de cuán preciso es el reloj de la PC y mucho menos en qué zona horaria.
  • Utilice el servicio web para solicitar TCP al servidor NTP para actualizar el reloj en la página web. Pros: Si la PC local también sincronizada con NTP será precisa y la mejor coincidencia posible. Contras: Tendrán que manejar todos los ajustes de la zona horaria relativos a nuestros servidores. Si el reloj de la PC está apagado, todavía no coinciden.

¿Implemento mi propio servicio web o uso algo como; Earth Tools o World Time Web Service ( EDITAR: enlace eliminado - ahora 404)

Aquí hay una publicación en el blog de Jon Galloway en Atomic Clock Web Service, que es bastante antigua y, sin embargo, ocupa un lugar destacado cuando googleo y él no llega a una conclusión.

Perdóname, puedo ganar la discusión con la administración acerca de por qué la sincronización con nuestro reloj de servidor (GMT) no tiene sentido si no estás en esa zona horaria y por qué incluso necesitamos hacer coincidir una PC local.

¿Algún ángulo sobre esto me falta?


En primer lugar, asegúrese de que su cliente sepa que Windows, Linux y OSX tienen relojes incorporados que casi siempre son visibles para los usuarios (o se hacen visibles con mucha facilidad). Además, asegúrese de que su cliente esté al tanto de los relojes físicos que a menudo se encuentran cerca de los quioscos que podrían configurarse para ocultar el reloj incorporado del sistema operativo.

Si usted sabe eso, y su cliente todavía quiere un reloj en su sitio web, haga que su cliente defina el tiempo "correcto", luego implemente la solución que coincida con su definición (ambas soluciones parecen que se encargarían de las dos más probables) definiciones).


Necesitaba mostrar la hora exacta a los clientes en una aplicación web de subastas. Puede enviar la hora actual del servidor con la página y hacer que el javascript se inicialice de inmediato sin esperar a que se cargue el resto de la página. Entonces, solo se trata de latencia de red, que en el peor de los casos no es más que un par de segundos.

Después de eso, estás bastante cerca de la hora exacta. Siempre que el código de su temporizador de Javascript esté escrito correctamente, no estará muy sincronizado antes de que se cargue la siguiente página. Pero he visto un montón de código de reloj JS malo. (Sugerencia: Date () bueno, setTimeout () malo.)

Si tiene una aplicación en la que los usuarios van a estar sentados durante mucho tiempo, simplemente actualice su sincronización de tiempo recargando la página o Ajax.

No me preocuparía por las zonas horarias, simplemente use la hora UTC para que no haya confusión sobre a qué hora pasarán las cosas.


Otra forma de implementarlo es usar la geolocalización de IP . Hay servicios que pueden indicarle de dónde se está conectando su usuario en función de su IP (generalmente incluyendo su zona horaria) y combinando esa información con el reloj en tiempo real de su servidor, puede mostrarle al usuario que es hora local.

Está lejos de ser perfecto, especialmente con usuarios corporativos que parecen estar conectándose desde un lugar en el que no están (yo vivo en Argentina, pero mi conexión a Internet es a través de mi empleadora que es una empresa estadounidense, por lo que cada sitio web asume que estoy ubicado en los Estados Unidos)


puede usar la orientación geográfica para conocer la ubicación física de un visitante del sitio web y en su base de datos almacenó la (GMT - XX: XX) de la zona y luego calcular la hora en función de la ubicación de la solicitud. eso va a salvar el largo viaje a cualquier servicio web de terceros.


Controle el tiempo en UTC.

  • Haga que los usuarios le digan qué zona quieren usar.
  • Si tus usuarios tienen perfiles persistentes, persiste la opción.
  • Siempre muestre UTC y Local Time una al lado de la otra y claramente etiquetadas.

También puede mostrar un número arbitrario de relojes de zona especificados por el usuario. Vista hace esto y me sorprende lo útil que es.