【问题标题】:Humanizing time人性化时间
【发布时间】:2011-03-18 14:01:08
【问题描述】:

我有许多易腐烂的产品。因此,每个产品都有一个名为 hours_expiration 的属性,该属性表明该产品可以使用多少小时才会变质。

例如,苹果在 168 小时后到期; nut 在 4320 小时后到期。

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

您的商品将在以下时间到期:

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

寻找强大而简单的东西!

【问题讨论】:

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

标签: ruby-on-rails ruby datetime


【解决方案1】:

另一个简单的助手是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 天后到期”

【讨论】:

    【解决方案2】:

    The distance_of_time_in_words helper 似乎是你想要的。

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 2012-08-10
      • 2013-10-06
      • 2021-09-20
      • 1970-01-01
      • 2012-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-26
      相关资源
      最近更新 更多