2011-04-21 51 views
0

我在我的rails3應用程序中有一些奇怪的行爲。Rails 3 ui datepicker

當我選擇與jQuery UI日期選擇器的日期。我在我的日誌中看到這個

Parameters: {"commit"=>"Save", "log"=> {"log_date"=>"04/20/2011"} ....blah...b} 
AREL (1.0ms) INSERT INTO "logs" ("log_date") VALUES ('2011-04-19 22:00:00.000000') 

我遺漏了不相關的信息。

正如您所看到的Rails不會將輸入的日期翻譯正確。它改變(在這種情況下)20.apr到19.apr。

當我再打

<%= log.log_date.strftime('%d.%m.%y') %> 

我得到的corect日期,但是當我做這個查詢

@log_times = Log.group(:log_date) 

日誌都早一天比他們是前人的精力。

在控制檯日誌中的這個例子是這樣的

irb(main):017:0> Log.last 
=> [#<Log id: 246, log_date: "2011-04-19 22:00:00">] 

因此,它保存一個日期早,但是當我告訴它在視圖中它是正確的。

爲什麼?

我可以使用getter和setter來解決這個問題嗎?

回答

2

默認情況下,Rails構建爲處理時區。存儲在數據庫中的時間存儲在UTC,Rails應該自動處理將其轉換爲配置的本地時間。

您是否在您的application.rb文件中設置了config.time_zone?另外,如果可能,我建議使用DateTime而不是Time

+0

感謝您指引我朝着正確的方向 – 2011-04-25 18:00:45