2011-09-21 143 views
0

用戶模型有time_zone,它存儲「Pacific Time(US & Canada)」。時區到當前時間

方案: 1. CURRENT_USER居住在日本的時區 2. CURRENT_USER正在查看約翰的簡歷誰住在「太平洋時間(美國&加拿大)」 3.在約翰的個人資料,我需要在顯示本地時間「太平洋時間(美國&加拿大)「作爲上午10:01

我做了什麼? ActiveSupport :: TimeZone.new(@ user.time_zone).now返回類似於2011-09-21 10:01:56 UTC

問題: 1.如何將此轉換爲上午10:01? 2.爲什麼是UTC?

請幫

回答

1

要設置時區,你需要使用

Time.zone= @user.time_zone 

您可能需要設置這個在:在application.rb

OTOH的before_filter,您可以使用use_zone方法有塊

Time.use_zone(@user.time_zone) do 
    #.... This code will run as if you were in @user.time_zone 
end 
0

嘗試像這樣的smth,在你的用戶控制器:

def show 
    @user = find(params[:id]) 
    Time.zone = @user.time_zone 
end 

要更改格式:

Time.now.strftime("at %I:%M%p") 
0

您可以使用此

Time.zone = 'Pacific Time (US & Canada)' 

獲取本地時間

Time.zone.now  #=> Wed, 21 Sep 2011 02:25:08 PDT -07:00 

獲得10: 00 am/pm

Time.zone.now.strftime("%I:%M %p") #=> 02:25 AM