我有一个 ActiveRecord 模型,其中一些属性存储在 MySQL 中作为DATE
s。在 Ruby 中,它们显示为Date
s。
假设 2011 年 3 月 3 日与 2011 年 3 月 4 日相隔一天,与 3 月 5 日相隔两天等,我如何才能知道它们相隔多少天。
另外,我需要找出它们与当前日期相隔多少天。
我有一个 ActiveRecord 模型,其中一些属性存储在 MySQL 中作为DATE
s。在 Ruby 中,它们显示为Date
s。
假设 2011 年 3 月 3 日与 2011 年 3 月 4 日相隔一天,与 3 月 5 日相隔两天等,我如何才能知道它们相隔多少天。
另外,我需要找出它们与当前日期相隔多少天。
使用distance_of_time_in_words
助手:
distance_of_time_in_words(date1, date2)
如果您想要更高的准确性,我写了一个名为的 gem dotiw
,它允许这样的事情:
distance_of_time_in_words(date1, date2, false, :only => ["days"]
看了一圈后,我想到了这个......
(obj.arrival_date - obj.departure_date).floor.abs
# => How many days apart.
和...
(obj.arrival_date - Date.today).floor.abs
根据实验,它似乎有效,尽管我不能 100% 确定它总是正确的。
Date.new(2001,2,3) - Date.new(1999,2,3)
将给出天数