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)
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
尝试关注
def formatted_duration(total_minute)
hours = total_minute / 60
minutes = (total_minute) % 60
"#{ hours }h #{ minutes }min"
end
Run Code Online (Sandbox Code Playgroud)