Подтвердить что ты не робот

Как основные сайты определяют часовой пояс?

Facebook, myspace, MSN, craigslist; все определяют часовой пояс, время показа и даты правильно, не отправляя форму или не перегружая страницу.

Как они это делают? У меня довольно большой сайт, и у людей есть публикация статей, которые должны отображать правильные времена (загруженные 3 часа или 6 вечера в зависимости от часового пояса).

Preloaders? Javascript? Загрузка страницы и ее перезагрузка? На моем сайте в настоящее время человек входит на сайт, и при первом входе он перезагружает страницу обновленной информацией о своем часовом поясе через javascript. Это, однако, довольно раздражающая вещь, и я ищу другую альтернативу. Я знаю, что при загрузке я могу отправить запрос ajax, а затем обновить все по всему сайту с правильным часовым поясом для пользователя. НО, если мне нужно щелкнуть обратно или перезагрузить, он спрашивает, хочу ли я снова отправить информацию что тоже плохо. Итак, как они это делают?

Я играл с Facebook, меняя свое местоположение на своей локальной машине и, похоже, обновлял часовой пояс каждые 5 минут или около того.

Я php, основанный на zend-framework.

4b9b3361

Ответ 1

нет заголовка запроса "часовой пояс" или что-то в этом роде, поэтому вы не можете с php

но с javascript вы можете получить смещение часового пояса клиента, тогда вы можете сделать запрос xmlhttp для отправки информации на php

см. это: http://www.pageloom.com/automatic-timezone-detection-with-javascript

довольно легко!

надеюсь, что это поможет

Ответ 2

Вы можете найти пользовательскую страну с использованием геокодирования IP-адресов, а затем иметь некоторый массив с часовыми поясами для каждой страны. Я думаю, что нет других путей. Вы можете выбрать страну пользователя следующим образом:

<?php
$file = file_get_contents("http://api.hostip.info/get_html.php?ip=".$_SERVER['REMOTE_ADDR']."");
?>

Затем просто используйте explode для $file.

Посмотрите также эти коды стоп-кодов:
Как определить часовой пояс веб-пользователя? Любой надежный API, доступный для определения города и страны пользователя с IP-адреса

Ответ 3

Я считаю, что они используют IP-адресацию и географическое местоположение. Это все, что нужно.

Ответ 5

Попробуйте этот php-код, это дает лучшую точность

  <?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];?>

Ответ 6

jsTimezoneDetect предоставляет отличную библиотеку для автоматического обнаружения часового пояса через javascript.