Ruby on rails 人性化时间

Ruby on rails 人性化时间,ruby-on-rails,ruby,datetime,Ruby On Rails,Ruby,Datetime,我有许多易腐烂的产品。因此,每个产品都有一个名为hours\u expiration的属性,该属性告诉产品在坏掉之前可以使用多少小时 例如,苹果在168小时后到期;螺母在4320小时后失效 给定产品的过期时间和当前时间(time.now或Date.now),我如何通过以下示例方式使过期时间人性化 您的项目将在大约以下时间过期: 6个月14天 1个月13天 一个月零一天 27天 一天 23小时 1小时 50分钟 1分钟 寻找一些强大而简单的东西 看看时间距离文档:似乎就是你所要求的。另一个简单

我有许多易腐烂的产品。因此,每个产品都有一个名为hours\u expiration的属性,该属性告诉产品在坏掉之前可以使用多少小时

例如,苹果在168小时后到期;螺母在4320小时后失效

给定产品的过期时间和当前时间(time.now或Date.now),我如何通过以下示例方式使过期时间人性化

您的项目将在大约以下时间过期:

  • 6个月14天
  • 1个月13天
  • 一个月零一天
  • 27天
  • 一天
  • 23小时
  • 1小时
  • 50分钟
  • 1分钟

寻找一些强大而简单的东西

看看时间距离文档:

似乎就是你所要求的。

另一个简单的帮助是
时间过去,用词来说

方法名称听起来似乎只能处理过去的日期,但实际上它可以处理未来的日期。您可以在rails控制台中尝试:

expiration_date = Time.now + 5.days 
puts "Expires in #{helper.time_ago_in_words(expiration_date)}"

“5天内到期”

我会避免
个月
-一个月可以长达28-31天。我更喜欢几天(也许几周)。