如何评估年,月和日(ruby)的日期差异?
我必须在两个日期之间做一个简单的区别:
Date.parse("2009-06-20") - Date.today
这给了我日期的差异。
任何人都知道一种方法可以轻松地将其转换为以下格式:
The event occurred X years, Y months and Z days ago
谢谢。
您可能正在寻找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有一个解决方案,但是对于我来说,要求这整个庞然大物完成这样一个微不足道的任务感觉有点痛苦。