Автоопределение часового пояса в Rails с учетом смещения UTC и DST - PullRequest
4 голосов
/ 23 мая 2010

Я хочу автоматически определить часовой пояс пользователя с помощью Rails. Я могу использовать этот код JS в браузере пользователя (http://www.onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/) для отправки формы со смещением UTC и тем фактом, что часовой пояс наблюдает летнее или летнее время, в часовом поясе пользователя.

Получив эту информацию на сервере, я хочу выбрать соответствующий часовой пояс. В Rails я могу получить список часовых поясов с ActiveSupport :: TimeZone.all. Кроме того, я могу фильтровать зоны по смещению utf благодаря методу utc_offset. Тем не менее, я не знаю, как фильтровать часовые пояса, которые выполняют / не соблюдают летнее время.

например. Предположим, пользователь живет в Амстердаме. Фильтрация по смещению UTC вернет часовые пояса Берлин, Белград, Мадрид и т. Д., А также Западно-Центральная Африка. Все они, кроме Западной Центральной Африки, были бы подходящими часовыми поясами для пользователя в Амстердаме (поскольку они предоставляют одинаковое время / дату), но мне нужно отфильтровать Западную Центральную Африку, которая летом не выполняет ТЛЧ.

Как я могу сделать это в Rails? Кроме того, мои предположения неверны?

1 Ответ

1 голос
/ 23 мая 2010

Я подумал, что http://geokit.rubyforge.org/ будет полезно.Вы можете получить координаты местоположения пользователя (или города / страны).Единственное, что вам нужно сделать, это угадать часовой пояс в зависимости от города / страны.

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