php - usa - ¿Cómo son los sitios principales que detectan la zona horaria?
zona horaria mexico (6)
Creo que usan direccionamiento IP y geolocalización. Eso es todo al respecto.
Esta pregunta ya tiene una respuesta aquí:
- Determine la zona horaria de un usuario 24 respuestas
Facebook, myspace, MSN, craigslist; todos detectan la zona horaria y muestran las horas y fechas correctamente sin tener que enviar un formulario o recargar una página.
¿Cómo lo hicieron? Tengo un sitio bastante grande y tengo personas que publican artículos que necesitan mostrar los tiempos correctos (subidos a las 3 pm o 6 pm, dependiendo de la zona horaria).
Precargadores? Javascript? ¿Cargando la página y recargarla? Mi sitio actualmente tiene a la persona que ingresa al sitio y, en la primera entrada, vuelve a cargar la página con información actualizada de su zona horaria a través de javascript. Sin embargo, esto es algo bastante molesto y estoy buscando otra alternativa. Sé que al cargar puedo enviar una solicitud de ajax y luego actualizarla en todo el sitio con la zona horaria correcta para el usuario PERO si tengo que hacer clic en volver o recargarla, pregunta si me gustaría enviar la información nuevamente que también es malo. Entonces cómo lo hacen?
Estaba jugando con Facebook, cambiando mi ubicación en mi máquina local y parecía actualizar la zona horaria cada 5 minutos aproximadamente.
Soy php, basado en zend-framework.
En primer lugar, debe trabajar con UTC en todos los niveles y, si no conoce una zona horaria, marque la hora como tal. Luego, en el cliente local puede ajustar la hora con timezoneOffset
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset
Prueba este código php esto da mejor precisión.
<?php $ip = $_SERVER[''REMOTE_ADDR''];
$json = file_get_contents("http://api.easyjquery.com/ips/?ip=".$ip."&full=true");
$json = json_decode($json,true);
$timezone = $json[localTimeZone];?>
Puede encontrar el país del usuario utilizando la geocodificación de la dirección IP y luego tener una matriz con zonas horarias para cada país. Creo que no hay otras formas. Puede obtener el país del usuario de esta manera:
<?php
$file = file_get_contents("http://api.hostip.info/get_html.php?ip=".$_SERVER[''REMOTE_ADDR'']."");
?>
Luego solo usa explode
para el $file
.
Mira también estos códigos de :
¿Cómo puedo determinar la zona horaria de un usuario web?
Cualquier API confiable disponible para determinar la ciudad y el país del usuario desde la dirección IP
no hay un encabezado de solicitud de "zona horaria", o algo así, así que no puedes con php
pero con javascript puede obtener la compensación de zona horaria del cliente, luego podría hacer una solicitud xmlhttp para enviar información a php
vea esto: http://www.pageloom.com/automatic-timezone-detection-with-javascript
¡muy fácil!
espero que esto ayude
jsTimezoneDetect proporciona una gran biblioteca para la detección automática de la zona horaria a través de javascript.