browser - tienen - porque no es la misma hora en todos los paises del mundo
Cómo usar un horario personalizado en el navegador para probar la diferencia horaria entre el cliente y el servidor (8)
Chrome parece actualizar su TimeZone tan pronto como lo cambie en Windows. Firefox parece almacenar el valor de la zona horaria del sistema al inicio.
Con Visual Studio, parece que puedes darle la vuelta al truco. Parece que la zona horaria solo se lee cuando comienza el proceso de depuración por primera vez. Entonces, en mi caso, lo que hice fue configurar TimeZone para, por ejemplo, Eastern Standard Time. Inicie el depurador de Visual Studio. Luego cambié el TimeZone a, por ejemplo, la hora estándar del Pacífico. El servidor en este momento se mantuvo en la zona horaria del este, mientras mi navegador estaba en la zona horaria del Pacífico. Ahora pude probar el comportamiento del navegador del cliente sin problemas.
Si desea probar un cliente en Japón, simplemente actualice su TimeZone y el navegador lo seguirá. Siempre que no reinicie el proceso de depuración, su zona horaria del servidor no cambiará. Además, solo cambiar el tiempo (en oposición a la zona horaria) no funcionó.
Acabo de escribir un pequeño fragmento de código para mostrar la hora del servidor en una página web. Por el momento solo tengo una máquina, así que no puedo probar si el código está funcionando.
¿Hay alguna manera de decirle al navegador que use una configuración de tiempo diferente a la configurada en el sistema operativo? He utilizado complementos para Firefox para probar diferentes configuraciones regionales, me pregunto si hay opciones similares para las pruebas de tiempo.
Gracias.
Crea un nuevo directorio vacío para un perfil de usuario de Chrome separado. Ej. Con
mkdir ~/chrome-profile
Usted especifica la variable de entorno TZ
. Puede ver las zonas horarias válidas, por ejemplo here , en la columna TZ.
Para iniciar Chrome, utiliza estos comandos:
- para Mac OS X:
TZ=''US/Pacific'' open -na "Google Chrome" --args "--user-data-dir=$HOME/chrome-profile"
- para Linux:
TZ=''US/Pacific'' google-chrome "--user-data-dir=$HOME/chrome-profile"
En la demanda popular (¡bromeo!), La explicación.
Google Chrome lee las variables de entorno para que se ejecute la zona horaria. Al parecer, todas las instancias de Chrome comparten el valor (no probado). Para forzar una zona horaria, tenemos que a) establecer la variable de entorno en la zona horaria que queremos, b) eliminar todas las instancias existentes de Chrome , c) Imprimir la zona horaria actual para confirmar y d) Iniciar Chrome con la zona horaria deseada.
El siguiente script de shell se prueba con OS X pero también debería funcionar para otros.
export TZ=''US/Pacific''
killall Chrome
date
open /Applications/Google/ Chrome.app
Esta es una forma fácil de tratar de cambiar la zona horaria y probarla para Windows 7 ^ Utilizo tzutil
tzutil /s "Eastern Standard Time"
y guárdelo en un archivo .bat
adecuado, por ejemplo, Eastern_Standard_Time_zone.bat
y use default_time_zone.bat
su zona horaria original del sistema para recuperarlo después de finalizar el proceso. esto cambiará tu zona horaria en un abrir y cerrar de ojos. reference
Modifiqué una secuencia de comandos que abre una nueva instancia de Chrome para permitir también la suplantación de zona horaria a través de la variable de entorno ''TZ''. Puede encontrarlo aquí: https://gist.github.com/prasadsilva/225fd0394a51e52bf62f
Probablemente sea mejor que deje la zona horaria de la computadora intacta y cambie la configuración del servidor para reflejar una zona horaria adelante o atrás de usted. Esto generalmente es bastante fácil de hacer dependiendo del servidor que está usando.
Una vieja pregunta, pero tuve un problema similar y arrojaré mi solución de todos modos.
Lo que hice fue ejecutar mi servidor en una máquina virtual, establecí la configuración de red en puente para poder acceder fácilmente al servidor desde mi sistema operativo anfitrión.
Luego cambié la configuración de tiempo en la máquina virtual para que hubiera la diferencia que quisiera entre el cliente y el servidor.
Desafortunadamente, JavaScript solo conoce el huso horario actual, tal como lo establece el sistema operativo. No hay instalaciones para permitir que el objeto Date
use un huso horario diferente en un contexto particular. Hay algunas bibliotecas para hacer conversiones de zonas horarias, pero eso no ayudará con lo que está pidiendo.
Sin embargo, hay un "truco" que puedes usar. Algunos navegadores leen la zona horaria del sistema solo cuando se inician por primera vez. Por lo tanto, si inicia su navegador y luego cambia la zona horaria de su computadora, el navegador continuará funcionando en la zona horaria anterior. Sé que Google Chrome en Windows funciona de esta manera. También probé IE10, pero recoge la nueva zona horaria.
Sin embargo, otra cosa, dijiste que estás mostrando el tiempo del servidor en una página web. ¿Cómo estás obteniendo eso? ¿Es PHP? .¿Red? ¿Algo más? La hora del servidor obviamente no influye en el tiempo del cliente o del navegador, a menos que estén en la misma máquina, como durante el desarrollo.