我如何才能找到两个日期相隔多少天?

时间:2012-05-07 23:06:33

标签: ruby-on-rails ruby

我有一个ActiveRecord模型,其中一些属性存储在MySQL中DATE s。在Ruby中,它们显示为Date s。

我怎么能发现它们相隔多少天,假设2011年3月3日是2011年3月4日之后的一天,距离3月5日还有两天等等。

另外,我需要了解它们与当前日期相隔多少天。

3 个答案:

答案 0 :(得分: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 :(得分:1)

在环顾四周后,我想出了这个......

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

和...

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

基于实验,它似乎有效,虽然我不是100%肯定它总是正确的。

答案 2 :(得分:0)

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

将给出天数