显示持续时间(以分钟为单位)到小时

时间:2016-11-10 22:47:17

标签: ruby-on-rails ruby-on-rails-4 time helper

我想显示电影的持续时间。现在,movie.duration显示在minutes(整数)

%b Duration: #{ @movie.duration } # 134 mins

rails是否有时间助手来表明这是一种更人性化的方式?像这样:

Duration: 2h 23min

2 个答案:

答案 0 :(得分:5)

distance_of_time_in_words可能会帮助您

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

你可以像这样使用它:

distance_of_time_in_words(0, 143*60)
# "about 2 hours" <- the result

你需要*60,因为它以秒为单位计算,所以这会以分钟为单位计算。

编辑:实际上你可以这样做更多的轨道:

distance_of_time_in_words(0, 143.minutes)

你也可以像这样计算:

"#{@movie.duration/60}h #{@movie.duration % 60}min"

该部门会给你几小时,而模数会给你分钟

如果你想要更像你说的话, 你可以使用这里的代码:

https://gist.github.com/csanz/669588

答案 1 :(得分:2)

尝试以下

def formatted_duration(total_minute)
  hours = total_minute / 60
  minutes = (total_minute) % 60
  "#{ hours }h #{ minutes }min"
end