我正在研究需要處理用戶時區日期和時間的Rails應用程序。我們最近將它遷移到了Rails 2.1並添加了時區支持,但是在很多情況下,我們使用Time#utc然後與該時間進行比較。這不會和原來的Time對象相比嗎?什麼時候適合在Rails 2.1中使用Time#utc?
什麼時候適合在Rails 2.1中使用Time#utc?它何時不合適?
我正在研究需要處理用戶時區日期和時間的Rails應用程序。我們最近將它遷移到了Rails 2.1並添加了時區支持,但是在很多情況下,我們使用Time#utc然後與該時間進行比較。這不會和原來的Time對象相比嗎?什麼時候適合在Rails 2.1中使用Time#utc?
什麼時候適合在Rails 2.1中使用Time#utc?它何時不合適?
如果您已設置:
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這裏檢測區
希望有所幫助。
如果您的應用程序擁有多個時區的用戶,則應始終使用UTC存儲您的時間(任何時區都可以工作,但您應該遵循最常見的約定)。
讓用戶在本地時間輸入,但轉換爲UTC來存儲(和比較,並操縱)。然後,從UTC轉回以顯示在每個用戶的本地時區中。