Time.now & Created_at отличается? Ruby on Rails

Мой сайт развертывается на heroku. Time.now возвратится сегодня, но created_at поле записи (созданный прямо сейчас) скажет завтра. Я предполагаю, что это имеет отношение ко времени сервера?

Существует ли способ удостовериться, что они - то же? Лучше всего, Elliot


Обновление, таким образом, я сделал это "heroku, обстреливает time:zones:us"

это дало мне:

    * UTC -10:00 *
Hawaii

* UTC -09:00 *
Alaska

* UTC -08:00 *
Pacific Time (US & Canada)

* UTC -07:00 *
Arizona
Mountain Time (US & Canada)

* UTC -06:00 *
Central Time (US & Canada)

* UTC -05:00 *
Eastern Time (US & Canada)
Indiana (East)

однако, когда я установил конфигурацию time_zone = 'UTC-05:00' в моей среде, приложению не удается запуститься. какие-либо идеи?

11
задан Elliot 25 March 2010 в 01:54
поделиться

1 ответ

Rails всегда сохраняет время UTC в базе данных; само по себе поле created_at должно быть смещено в соответствии с вариацией вашего часового пояса относительно UTC.

Каждый раз, когда вы загружаете запись в приложение, поля преобразуются в часовой пояс, указанный в environment.rb. Это может быть что-то вроде этого:

config.time_zone = 'UTC'

Чтобы время было правильно преобразовано в ваш часовой пояс, вы можете изменить этот параметр конфигурации на тот, который соответствует вашему фактическому часовому поясу. Например:

config.time_zone = 'Central Time (US & Canada)'

Чтобы увидеть доступные зоны, введите "rake -D time" в вашем каталоге rails. Это даст вам инструкции о том, как получить имена часовых поясов для использования в конфигурации.

16
ответ дан 3 December 2019 в 07:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: