在Rails中是否有任何方法可以将分钟转换为整数,分为几天,几个月等

时间:2012-12-20 21:59:33

标签: ruby-on-rails ruby

我有一个以分钟为单位的值列表,我希望轻松转换为最接近的匹配,如下所示

10 => 10 minutes
1440 => 1 day
86400 => 2 months
525600 => 1 year

在Rails中有没有简单的方法呢?

4 个答案:

答案 0 :(得分:5)

试试distance_of_time_in_words。它直接在两个Time对象上运行,计算差异,但您可以随时执行:

include ActionView::Helpers::DateHelper

def minutes_in_words(minutes)
  distance_of_time_in_words(Time.at(0), Time.at(minutes * 60))
end

minutes_in_words(10)
=> "10 minutes"
minutes_in_words(1440)
=> "1 day"
minutes_in_words(86400)
=> "2 months"
minutes_in_words(525600)
=> "about 1 year"

答案 1 :(得分:2)

我可能会使用time_ago_in_words和一点点数学来确定正确的日期......

http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-time_ago_in_words

time_ago_in_words(3.minutes.from_now)       # => 3 minutes
time_ago_in_words(Time.now - 15.hours)      # => about 15 hours
time_ago_in_words(Time.now)                 # => less than a minute

它不是(有意)精确,但它已经存在。否则,使用某些除法/模数学来wh自己很容易...

答案 2 :(得分:1)

不要认为RoR有这个,但这很容易

def to_days(minutes)
  minutes / (60*24)
end

def to_months(minutes)
  minutes / (60*24*30)
end

def to_years(minutes)
  minutes / (60*24*365)
end

答案 3 :(得分:0)

看看下面的链接,我认为它有你需要的东西。看看函数distance_of_time_in_words。

http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html