1

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

假设 2011 年 3 月 3 日与 2011 年 3 月 4 日相隔一天,与 3 月 5 日相隔两天等,我如何才能知道它们相隔多少天。

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

4

3 回答 3

1

使用distance_of_time_in_words助手:

distance_of_time_in_words(date1, date2)

如果您想要更高的准确性,我写了一个名为的 gem dotiw,它允许这样的事情:

distance_of_time_in_words(date1, date2, false, :only => ["days"]
于 2012-05-07T23:17:20.930 回答
1

看了一圈后,我想到了这个......

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

和...

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

根据实验,它似乎有效,尽管我不能 100% 确定它总是正确的。

于 2012-05-08T00:21:54.953 回答
0

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

将给出天数

于 2012-05-07T23:15:33.523 回答