Rub*_*ist 3 ruby datetime ruby-on-rails ruby-on-rails-4
在Rails中,我试图将秒仅转换为小时。但是巧合的是,功能还提供了其他东西。
For example - Second = 164580
Output like : 45:43:0
Run Code Online (Sandbox Code Playgroud)
在间隔24小时后,它也会转换为一天。我正在尝试使用任何Ruby内置函数来仅获取总时数。
您可以使用以下简单方法:
def seconds_to_hours(seconds)
seconds / 3600
end
Run Code Online (Sandbox Code Playgroud)
一分钟有60秒,一小时有60分钟。因此,如果将秒除以60*60,即3600,然后将其四舍五入,您将得到小时。
小智 5
如果您只想显示小时作为输出,您可以使用此功能:
Time.at(236).utc.strftime "%H"
Run Code Online (Sandbox Code Playgroud)
值“%H:%M:%S”代表时:分:秒
您可以在此处阅读更多相关信息:http : //apidock.com/rails/ActiveSupport/TimeWithZone/strftime
除此之外 - 功能时间仅限于 24 小时。所以你不能计算超过这个值。
现在,我知道了您要寻找的东西,我提供了:
def seconds_to_hms(sec)
[sec / 3600, sec / 60 % 60, sec % 60].map{|t| t.to_s.rjust(2,'0')}.join(':')
end
Run Code Online (Sandbox Code Playgroud)
编辑:另一个选择,甚至更简洁:
def seconds_to_hms(sec)
"%02d:%02d:%02d" % [sec / 3600, sec / 60 % 60, sec % 60]
end
Run Code Online (Sandbox Code Playgroud)
样品输出;
seconds_to_hms(164580)
=> "45:43:00"
Run Code Online (Sandbox Code Playgroud)