Rails 3 пользовательских часовых пояса - PullRequest
3 голосов
/ 14 мая 2011

В Rails 2.x мне не нужно было задавать какую-либо информацию о часовом поясе, и пользователь, независимо от того, в каком часовом поясе он находится, получит дату и время, указанные пользователем в их ОС.

Теперь в Rails 3 все отображается в UTC. Возможно ли вернуться к этому режиму просмотра по умолчанию, не добавляя JS-хак для определения часового пояса пользователя?

Спасибо!

Chris

Ответы [ 2 ]

6 голосов
/ 24 мая 2011

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

Invoice.last.created_at.localtime
0 голосов
/ 15 ноября 2011

Простой способ поиска часового пояса с IP-адреса:

  require 'open-uri'

  def get_time_zone_from_ip(ip)
    # get external IP of rails server if running on localhost
    ip = open("http://ifconfig.me/ip").string.strip if ip == "127.0.0.1"

    location = open("http://api.hostip.info/get_html.php?ip=#{ip}&position=true")
    if location.string =~ /Latitude: (.+?)\nLongitude: (.+?)\n/
      json = open("http://ws.geonames.org/timezoneJSON?lat=#{$1}&lng=#{$2}")
      geo = ActiveSupport::JSON.decode(json)
      return ActiveSupport::TimeZone::MAPPING.index(geo["timezoneId"]) unless geo.empty?
    end
  end

GeoKit кажется более надежным вариантом для получения координат, если вы хотите посмотреть координаты почтового адреса.1004 *

http://geokit.rubyforge.org/index.html

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