Rails 3.1 и нужное время сохраняются в БД - PullRequest
0 голосов
/ 05 декабря 2011

Уже несколько часов я борюсь со временем хранения в таблице базы данных.Время там сохраняется как -1h .Я не знаю, как правильно распечатать время из базы данных правильной формы (= + 1h ).Я пытался установить часовой пояс и тому подобное, но, к сожалению, у меня ничего не работает.

Так что в качестве решения я выбрал этот способ:

@my_obj.created_at+3600 # +1 hour

Существует какой-нибудь лучший способ сделать это?

1 Ответ

1 голос
/ 05 декабря 2011

Установив часовой пояс сервера, вы можете использовать:

ActiveSupport::TimeZone.utc_to_local(@my_obj.created_at)

Для получения дополнительной информации: посмотрите на apidock по этому методу здесь: http://apidock.com/rails/ActiveSupport/TimeZone/utc_to_local

Если вам нужно переопределить локальный часовой пояс сервера, вы можете установить его как before_filter в вашем ApplicationController:

before_filter :set_time_zone

def set_time_zone
  Time.zone = 'London'
end

Опять же, apidock хорош для дополнительной информации: http://apidock.com/rails/Time/zone%3D/class

Если вы не хотите полагаться на локальный часовой пояс сервера, вы всегда можете использовать:

@my_obj.created_at.in_time_zone('London')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...