2009-04-20 8 views

Respuesta

10

Javascript:

var today = new Date(); 

alert(today.getTimezoneOffset()); 

Esto le dará al offset (GMT-X), pero no el nombre de zona horaria real. Tenga en cuenta que el mismo desplazamiento GMT puede corresponderse con varias zonas horarias y también debe tener en cuenta los ahorros de luz diurna. Sin embargo, este es probablemente el lugar más fácil para comenzar, salvo que los usuarios elijan su zona horaria desde un menú desplegable.

+1

Lo único que me gustaría notar es que 'getTimezoneOffset()' parece devolver la cantidad de tiempo que GMT es el desplazamiento de la zona horaria del usuario se compensa, y no al revés. es decir, cuando en el horario estándar del este de América del Norte, '(nueva fecha()). GetTimezoneOffset()/60' devuelve' 5', cuando EST es realmente igual a GMT-05: 00, no a GMT + 05: 00. – gabriel

1

Puede usar JavaScript para determinar con mayor o menor fiabilidad la zona horaria. HTTP, que yo sepa, no proporciona ningún medio para determinar la zona horaria del cliente en el servidor.

1

el uso de JavaScript:

<input type="hidden" id="visitorTZ" name="visitorTZ" /> 
<script type="text/javascript"> 
    d = new Date(); 
    document.getElementById('visitorTZ').value = d.getTimezoneOffset()/60; 
</script> 
2

Se podría tratar de detectar un país a los usuarios, haciendo coincidir su dirección IP a una serie de listas. Hay diferentes maneras de lograr esto, pero lo mejor es usar this API.

Un ejemplo de uso sería: http://nl.ae/iptocapi.php?type=1&ip=00.00.00.00. Esto devolverá el código de país de esa dirección IP. Entonces es bastante fácil hacer coincidir el código de país con la zona horaria.

Una vez que haya encontrado la zona horaria de esta manera, puede usarla como valor predeterminado en un cuadro desplegable.

+4

Esto no va a funcionar. * Muchos * países comprenden más de una zona horaria. – Turtle

+0

En retrospectiva, realmente no fue una buena idea. – Sam152

Cuestiones relacionadas