2012-05-07 57 views
1

我有一個ActiveRecord模型,其中一些屬性存儲在MySQL中作爲DATE s。在Ruby中,它們顯示爲Date s。我怎樣才能找到兩個日期相隔多少天?

我怎樣才能發現他們多少天都相隔,假設像2011年3月3日是相隔一天內,從2011年3月4日,開的兩個天從3月5日,等

而且,我需要找到他們離現在的日期有多少天。

+1

你想用這些距離做什麼? ActiveSupport有一個[很多數量更多的重點日期/時間助手](http://api.rubyonrails.org/classes/Date.html),可能會解決您的基本問題 – Nevir

+0

謝謝。很高興知道未來的參考。 – Ethan

回答

0

Date.new(2001,2,3) - Date.new(1999,2,3)

會給天

1

的數目使用distance_of_time_in_words幫手:

distance_of_time_in_words(date1, date2) 

如果你想要更高的精度,我寫了一個叫dotiw寶石,這將允許這樣的事情:

distance_of_time_in_words(date1, date2, false, :only => ["days"] 
1

環顧四周有點經過我想出了這個...

(obj.arrival_date - obj.departure_date).floor.abs 
# => How many days apart. 

而且......

(obj.arrival_date - Date.today).floor.abs 

基於實驗,它似乎工作,雖然我不是百分之百肯定它將永遠是正確的。