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

ltd*_*dev 4 time ruby-on-rails helper ruby-on-rails-4

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

%b Duration: #{ @movie.duration } # 134 mins
Run Code Online (Sandbox Code Playgroud)

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

Duration: 2h 23min
Run Code Online (Sandbox Code Playgroud)

Ziv*_*ili 6

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
Run Code Online (Sandbox Code Playgroud)

你需要*60它,因为它以秒计数,所以这样它将在几分钟内计算.

编辑:实际上你可以这样做更像rails:

distance_of_time_in_words(0, 143.minutes)
Run Code Online (Sandbox Code Playgroud)

你也可以像这样计算:

"#{@movie.duration/60}h #{@movie.duration % 60}min"
Run Code Online (Sandbox Code Playgroud)

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


如果您想要更像您所说的内容,可以使用此处的代码:

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


San*_*rma 6

尝试关注

def formatted_duration(total_minute)
  hours = total_minute / 60
  minutes = (total_minute) % 60
  "#{ hours }h #{ minutes }min"
end
Run Code Online (Sandbox Code Playgroud)