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

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

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

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

尝试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" 

我可能会使用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自己很容易…

不要认为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 

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

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