2008-09-19 55 views
5

我正在研究需要處理用戶時區日期和時間的Rails應用程序。我們最近將它遷移到了Rails 2.1並添加了時區支持,但是在很多情況下,我們使用Time#utc然後與該時間進行比較。這不會和原來的Time對象相比嗎?什麼時候適合在Rails 2.1中使用Time#utc?

什麼時候適合在Rails 2.1中使用Time#utc?它何時不合適?

回答

7

如果您已設置:

config.time_zone = 'UTC' 

在你的environment.rb(它的存在默認情況下),那麼時間就會自動地被轉換成UTC時ActiveRecord的儲存。

然後,如果在用戶的時區中設置Time.zone(在application.rb中的before_filter是通常的地方),則所有時間都將自動從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

如果您的應用程序擁有多個時區的用戶,則應始終使用UTC存儲您的時間(任何時區都可以工作,但您應該遵循最常見的約定)。

讓用戶在本地時間輸入,但轉換爲UTC來存儲(和比較,並操縱)。然後,從UTC轉回以顯示在每個用戶的本地時區中。