Как автоматически определять часовой пояс пользователя?

Привет, я создаю веб-приложение, где, если пользовательский регистр, мы покажем созданную дату.

Для этого мы используем текущую метку времени в моей таблице sql.Which показывает время сервера. Но мы не знаем, как конвертировать Time в соответствии с часовым поясом пользователя.

Потому что мы не получаем пользовательскую страну.

Может ли кто-нибудь помочь мне исправить его

Заранее спасибо:)

Ответы

Ответ 2

Вы не можете получить часовой пояс пользователя на стороне сервера, и вы можете только угадать его на стороне клиента.

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

Обычно это делается путем запроса пользователя (когда они регистрируются, например), в какой временной зоне они находятся, а затем использовать это в своих расчетах времени.

Ответ 3

Для геолокации вы можете использовать http://ipinfodb.com/, отлично работать с API!

function GeoLocation($precision='city',$ip,$api) {

    if($precision == "country") {
        $file = "ip_query_country.php";
    }
    else {
        $file = "ip_query.php";
    }

    $params = @file_get_contents("http://api.ipinfodb.com/v2/ip_query.php?key=".$api."&ip=".$ip."&timezone=true");
    $fields = @new SimpleXMLElement($params);
    foreach($fields as $field => $val) {
        $result[(string)$field] = (string)$val;
    }
    return $result;
}

Ответ 4

С небольшим "обманом" (используя скрипты на стороне клиента) и отправкой результата на ваш сервер вы можете получить доступ к часовому поясу вашего клиента.

Например, вы можете использовать эту библиотеку javascript:

https://bitbucket.org/pellepim/jstimezonedetect

var tz = jstz.determine(); // Determines the time zone of the browser client
tz.name(); // Returns the name of the time zone eg "Europe/Berlin"

Демо: http://pellepim.bitbucket.org/jstz/

Ответ 5

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

Это шаги, которые я предприму, чтобы иметь часовой пояс для пользователей:

1- Сохраните столбец временной метки, который у вас есть для вашего собственного использования
2- Добавить новый столбец для часового пояса фактических пользователей
3- Используйте javascript для извлечения часового пояса:
new Date().getTimezoneOffset()/60;<br/>
4- Также разрешить пользователям также устанавливать собственный часовой пояс

Вы также можете сделать еще один шаг и использовать службу геолокации для обнаружения часового пояса пользователей.