2011-08-24 80 views
0

我住在時區GMT + 5.30。我的rails應用程序在保存updated_at和created_at的值時總是保存GMT時間。我如何默認我的rails應用程序以GMT + 5.30時間輸入時間?設置本地時間在軌道上

回答

3

我花了一段時間才能趕上這一個了......

在environement.rb文件中,是:

config.time_zone = "something" 

它改變到:

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

例如,時間顯示在y中我們的意見將自動轉換。

默認情況下,Rails只是像這樣存儲時間。它是您將時間轉換爲良好時區的語言環境。

+0

它實際上在application.rb文件中。 – Rahul

+0

你是可能的。對,我檢查了我的舊項目是rails 2.3.2。他們可能。在application.rb中移動它。感謝更新 – Cygnusx1

2

您應該始終在數據庫中存儲以UTC爲單位的時間,以便它在地理上不受限制。然後,您可以在用戶的​​當地時間或任何您想要的系統默認值中顯示時間。要做到這一點修改您的application_controller.rb以下例如:

class ApplicationController < ActionController::Base 
    before_filter :set_user_time_zone 

protected 
    def set_user_time_zone 
    Time.zone = 'New Delhi' 
    end 
end 

可以渲染所有這些次當地時間:

Time.now.localtime.in_time_zone(Time.zone) 
# => Thu, 25 Aug 2011 01:23:43 IST +05:30 

你也許可以清理一下有一個輔助方法。

0

看起來你會得到你的答案在這裏爲您提供的應用程序是on Rails的3