Когда уместно использовать Time # utc в Rails 2.1? - PullRequest
5 голосов
/ 19 сентября 2008

Я работаю над приложением Rails, которое должно обрабатывать даты и время в часовых поясах пользователей. Мы недавно перенесли его в Rails 2.1 и добавили поддержку часовых поясов, но есть множество ситуаций, в которых мы используем Time # utc, а затем сравниваем с этим временем. Разве это не то же самое, что сравнение с исходным объектом времени?

Когда целесообразно использовать Time # utc в Rails 2.1? Когда это неуместно?

Ответы [ 2 ]

7 голосов
/ 19 сентября 2008

Если вы установили:

config.time_zone = 'UTC'

В вашем environment.rb (он есть по умолчанию), времена автоматически преобразуются в UTC, когда ActiveRecord сохраняет их.

Затем, если вы установите Time.zone (в before_filter для application.rb - обычное место) в часовой пояс пользователя, все времена будут автоматически преобразованы в часовой пояс пользователя из хранилища utc.

Только будь осторожен с Time.now.

Также см .:

http://mad.ly/2008/04/09/rails-21-time-zone-support-an-overview/

http://errtheblog.com/posts/49-a-zoned-defense - здесь вы можете использовать JS для обнаружения зон

Надеюсь, это поможет.

0 голосов
/ 19 сентября 2008

Если в вашем приложении есть пользователи в нескольких часовых поясах, вы всегда должны хранить свое время в UTC (любой часовой пояс будет работать, но вы должны придерживаться наиболее распространенного соглашения).

Позволяет пользователю вводить данные по местному времени, но конвертировать в UTC для хранения (и сравнения, и манипулирования). Затем выполните преобразование обратно из UTC для отображения в часовом поясе каждого пользователя.

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