人性化时间

时间:2011-03-18 14:01:08

标签: ruby-on-rails ruby datetime

我有很多易腐烂的产品。因此,每个产品都有一个名为hours_expiration的属性,用于说明产品在变坏之前可以使用多少小时。

对于前者,苹果在168小时后到期;坚果在4320小时后到期。

鉴于产品的到期时间和当前时间(Time.now或Date.now),我如何通过以下某些示例方式将到期时间人性化?

您的项目设置为关于:

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

寻找强大而简单的东西!

3 个答案:

答案 0 :(得分:20)

The distance_of_time_in_words helper似乎就是你要求的。

答案 1 :(得分:1)

答案 2 :(得分:0)

另一个简单的帮手是time_ago_in_wordshttps://apidock.com/rails/ActionView/Helpers/DateHelper/time_ago_in_words

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

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

“ 5天后过期”