我在Rails 2.1+中實現了時區支持,並且我從數據庫中獲取數據的方式遇到了明顯的錯誤。讓我嘗試設置它。Rails的時區被忽略的ActiveRecord查找?
「交易」模型包含「offer_date」日期時間字段。假設我有以下兩個offer_dates的記錄:
Deal 1: 2009-12-29 23:59:59 -0500
Deal 2: 2009-12-28 23:59:59 -0500
這是正確的:日期應該標記給定日的最後一秒。
現在,當談到時間找到交易的今天,我有以下AR查詢:
@deal = Deal.first(:conditions=>['offer_date > ?', Time.now.beginning_of_day], :order=>"offer_date ASC")
在這種情況下,雖然今天是第29屆,它表面上是返回的記錄了第28位。爲什麼?以下是控制檯中發生的情況:
>> @deal = Deal.first(:conditions=>['offer_date > ?', Time.now.beginning_of_day], :order=>"offer_date ASC")
=> #<Deal id: 2, <blah blah blah...>, offer_date: "2009-12-29 04:59:00">
它將時間向前移動了5個小時,將昨天的日子變爲下一天。但當我這樣做:
>> @deal.offer_date
=> Mon, 28 Dec 2009 23:59:00 EST -05:00
我得到正確的時間。有沒有搞錯???我只想說,我需要這個日期才能正常工作,但我無法弄清楚我的問題在哪裏。任何援助,你可以提供將不勝感激!
啊,再次感謝您的幫助!我最終會得到這個...... :-) – 2009-12-29 19:59:37