Привет, я создаю веб-приложение, где, если пользователь зарегистрируется, мы покажем созданную дату.
Для этого мы используем текущую метку времени в моей таблице sql.Which показывает время сервера. Но мы не знаем, как конвертировать Time в соответствии с часовым поясом пользователя.
Потому что мы не получаем страну пользователя .
Может ли кто-нибудь помочь мне исправить это
Заранее спасибо 🙂
Использовать javascript решение
http://www.onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/
Демонстрация должна показывать ваш часовой пояс в поле выбора.
http://onlineaspect.com/examples/timezone/index.html (Dead link)
Вы не можете получить часовой пояс пользователя на стороне сервера, и вы можете только угадать его на стороне клиента.
Если вы полагаетесь на получение IP-адреса пользователя, тогда вы можете его геолокацию и вывести время.
Обычно это делается путем запроса пользователя (когда они регистрируются, например), в какой временной зоне они находятся, а затем использовать это в ваших расчетах времени.
Для геолокации вы можете использовать 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; }
С небольшим «обманом» (используя скрипты на стороне клиента) и отправкой результата на ваш сервер вы можете получить доступ к часовому поясу своего клиента.
Например, вы можете использовать эту библиотеку 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"
Самый надежный метод – попросить пользователя установить свой часовой пояс. Я думаю, что неплохо иметь временную метку, когда учетная запись пользователя была создана в вашей собственной базе данных для вашего собственного использования.
Это шаги, которые я предприму, чтобы иметь часовой пояс для пользователей:
1- Сохраните колонку отметки времени, которую вы используете для собственного использования.
2- Добавить новый столбец для часового пояса фактических пользователей
3- Используйте javascript для извлечения часового пояса:
new Date().getTimezoneOffset()/60;<br/>
4- Также позволяют пользователям устанавливать собственный часовой пояс
Вы также можете сделать еще один шаг и использовать службу геолокации для определения часового пояса пользователей.