Как определить часовой пояс пользователя в регистрационных формах? - PullRequest
8 голосов
/ 20 апреля 2009

Часовые пояса может быть трудно выбрать из десятков вариантов. Я хотел бы сделать этот процесс проще. Я видел некоторые формы в дикой природе, которые могут сделать лучшее предположение. Я изумлен для решения, но без какой-либо удачи. У кого-нибудь есть идеи, как это сделать?

Ответы [ 5 ]

10 голосов
/ 20 апреля 2009

Javascript:

var today = new Date();

alert( today.getTimezoneOffset() );

Это даст смещение (GMT-X), но не фактическое имя часового пояса. Имейте в виду, что одно и то же смещение по Гринвичу может соответствовать нескольким часовым поясам, а также учитывать летнее время. Тем не менее, это, пожалуй, самое простое место для начала, если не считать, что пользователи выбирают свой часовой пояс из выпадающего списка.

2 голосов
/ 18 мая 2010

Я нашел гораздо лучшее и надежное решение здесь: http://www.onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/.

Как объясняет автор, Date.getTimezoneOffset() противоречиво.

2 голосов
/ 20 апреля 2009

Вы можете попытаться определить страну пользователя, сопоставив его IP-адрес с серией списков. Есть разные способы добиться этого, но лучше всего использовать этот API .

Пример использования: http://nl.ae/iptocapi.php?type=1&ip=00.00.00.00. Это вернет код страны этого IP-адреса. Тогда довольно просто сопоставить код страны с часовым поясом.

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

1 голос
/ 20 апреля 2009

Использовать Javascript:

<input type="hidden" id="visitorTZ" name="visitorTZ" />
<script type="text/javascript">
    d = new Date();
    document.getElementById('visitorTZ').value = d.getTimezoneOffset()/60; 
</script>
1 голос
/ 20 апреля 2009

Вы можете использовать JavaScript для более или менее надежного определения смещения часового пояса. Насколько мне известно, HTTP не предоставляет никаких средств для определения часового пояса клиента на сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...