我目前有單獨的game_date和game_time字段,並且由於時區問題,我將我的DateTime.now與級聯的DateTime進行了比較。我應該重新設計我的數據庫來使用DateTime嗎?我有一個時間字段分開,因爲在某些時間點,時間可能爲空。典型的做法是什麼,而且,我應該如何解決我的問題與下面的時區?什麼時候應該在Ruby/Rails中使用DateTime和日期,時間字段?
now = DateTime.now
@upcoming_games = []
@past_games = []
games.each do |game|
game.game_time = DateTime.now if game.game_time.nil?
dt = DateTime.parse("#{game.game_date}T#{game.game_time.strftime("%H:%M:00")}")
if dt >= now
@upcoming_games << game
else
@past_games << game
end
end
對於日期字段+1。 「時間」實際上可能是本地區域中的不同於數據庫中存儲的「日期」。這使得不可能在不同時區選擇「1月1日」發生的所有事情。 – 2013-02-11 04:46:59
有關時間範圍限制的說明早於1.9.3。範圍現在更大。見http://stackoverflow.com/questions/1261329/whats-the-difference-between-datetime-and-time-in-ruby/1261435#1261435 – 2013-04-10 20:21:45
內部時間類現在可以處理更廣泛的範圍,這是真的。這些類之間的差異現在很小,但是DateTime仍然有更多的Rails添加的日期計算方法。 – tadman 2013-04-10 21:12:31