2013-07-31 55 views
0

我有以下的方法在我的應用程序:如何將rails中的created_at與時區進行比較?

def self.for_today 
    where("log_entries.created_at > ?", Time.zone.today) 
    end 

log_entries.for_today

Time.zone: GMT-08:00) Tijuana 
Time.now.in_time_zone: 2013-07-30 19:21:54 -0700 
[#<LogEntry id: 67, created_at: "2013-08-01 03:11:55", updated_at: "2013-07-31 02:19:26", user_id: 1>, 
#<LogEntry id: 68, created_at: "2013-07-31 20:12:24", updated_at: "2013-07-31 02:19:26", user_id: 1>, 
#<LogEntry id: 69, created_at: "2013-07-31 02:19:26", updated_at: "2013-07-31 02:19:26", >] 

這些日誌條目仍顯示爲今天即使日期明顯不同。

不幸的是,這實際上並沒有引用今天,因爲它是純粹的UTC。

如果用戶設置了他們的時區,他們昨天記錄的內容仍可能顯示在今天。

我該如何解決這個問題?

+0

[轉換爲紀元時間](http://stackoverflow.com/questions/4492557/convert-ruby-date-to-integer)並比較那些,在那個階段,時區是不相關的。 – hd1

+0

作爲一種排序方法,我該怎麼做? –

回答

0

時區thing rails在應用程序級別處理。數據庫記錄將根據您的數據庫時區保存。

而且可以在應用程序級別處理這個時區事物。

顯示一些方法或代碼,您正好發現錯誤記錄或有問題。

+0

這個問題是我上面描述的。我試圖顯示今天的日誌條目列表,但它也顯示了昨天的日誌條目。我希望它能從當前用戶的時區12am在病房中顯示。 –

相關問題