2009-03-23 11 views
5

Me gustaría poder mostrar la hora en función de la zona horaria actual del usuario. Guardaré las horas en formato UTC en mi base de datos, pero deseo normalizarlas en la zona horaria del cliente. Hasta ahora, la opción que parece ser más viable es capturar el tiempo de los clientes y luego determinar la diferencia entre ese y el UTC actual y usar ese delta para normalizar los tiempos de procesamiento. Me gustaría saber si hay más opciones directas disponibles para detectar y normalizar una hora UTC a la de la máquina del cliente solicitante.Tiempo del cliente ASP.NET

+0

¿Cómo sabes que el cliente tiene su tiempo establecido con precisión? No puedes ganar –

+0

Consideré eso ... pero lo consideraré una ganancia si puedo basarlo en su tiempo (correcto o incorrecto) :). – JPrescottSanders

Respuesta

8

Usaría javascript dateObject.getTimezoneOffset(). Incluso si su tiempo no se establece con precisión, es de esperar que han puesto su zona horaria:

http://www.w3schools.com/jsref/jsref_getTimezoneOffset.asp

Usted puede usar este valor para calcular un desfase entre el tiempo del servidor y el tiempo del cliente. (como Jason señaló amablemente en un comentario a continuación)

+0

Su solución es la correcta. Tuve que resolver este problema para nuestra aplicación web hace aproximadamente 6 meses y llegué a la misma conclusión: use el tiempo del servidor corregido por la zona horaria del cliente. –

2

Además de, o en lugar de utilizar getTimezoneOffset, debería considerar permitir al usuario especificar la zona horaria preferida en su perfil. Por ejemplo, un usuario puede estar visitando en una zona horaria, pero puede preferir ver la hora en su zona horaria local.

Además, si esto fuera tan simple como llamar a una función de JavaScript, los sitios nunca tendrían que pedir su zona horaria.

0

Un enfoque mucho mejor es almacenar por usuario la zona horaria exacta en la que se encuentra el usuario (y opcionalmente) permitirle seleccionar si observa el horario de verano (si es aplicable a su zona horaria). , complete automáticamente la información del horario de verano (según el huso horario) si lo desea.

Tendría que hacer esta parte del registro o posiblemente en sus "opciones".

Cuestiones relacionadas