如何评估年,月和日(ruby)的日期差异?

我必须在两个日期之间做一个简单的区别:

Date.parse("2009-06-20") - Date.today 

这给了我日期的差异。

任何人都知道一种方法可以轻松地将其转换为以下格式:

 The event occurred X years, Y months and Z days ago 

谢谢。

在这里找到答案:

更精确的distance_of_time_in_words

有了这个gem:

https://github.com/radar/dotiw

您可能正在寻找distance_of_times_in_words

有一个RubyGem,它返回像{:year => 0,:month => 0,…}这样的哈希值的时差。

链接是: https : //rubygems.org/gems/time_diff

这是天,小时,秒差异的示例。 添加所需的字段。

 def calculate_difference minutes = (Date.parse("2009-06-20") - Date.today).to_i / 60 days = minutes / (24*60) minutes -= days * 24*60 hours = minutes / 60 minutes -= hours * 60 "#{days}d#{hours}h#{minutes}m" end 

我不知道有任何标准的,正确的方法来做到这一点。 看起来很奇怪,标准的Ruby库有一个Date类但没有DateSpanfunction。 Rails有一个解决方案,但是对于我来说,要求这整个庞然大物完成这样一个微不足道的任务感觉有点痛苦。