2009-08-11 16 views

回答

6

設置config.time_zone更改了Rails應用程序的默認時區。這是所有時間的時區都會顯示給您的用戶。這也是它在設置屬性時所採用的時區。

但是,Rails將始終將UTC中的時間存儲在數據庫中。翻譯發生在幕後(大部分時間),您不必擔心它。

將此時區更改爲大多數用戶所在的時區是很常見的。您可以運行此rake任務以查看您可以選擇的所有時區。

rake time:zones:all 

這也是很容易改變當前時區上的每個請求允許每個用戶配置他們是在哪個時區。這裏有一個過濾器實例之前,你可能會添加到應用程序控制器。

before_filter :set_user_time_zone 

private 

def set_user_time_zone 
    Time.zone = current_user.time_zone if logged_in? 
end 

請參閱this Railscasts episode瞭解更多信息。

6

只爲Ryan的優秀答案補充一點。如果你想將它設置爲美國東部時間,它不會是

config.time_zone = 'EST' 

這將是

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

使用以下時區之一,以獲得可用選項的列表:

rake time:zones:all 
rake time:zones:local 
rake time:zones:us 
相關問題