Ruby Time的整数分钟/小时

时间:2017-08-16 13:44:53

标签: ruby-on-rails ruby time

我有以下时间:

1456

14分56秒 我需要转换为时间和格式如下:

14时56分

如果是几个小时:

6500

01:05

我怎么能用ruby / rails做到这一点? 我正在寻找解决方案,但我不能。

1 个答案:

答案 0 :(得分:1)

更新(考虑@ eiko'评论),此代码将处理任何(正)整数(低于60*24*100):

def custom_duration_to_hours_mn_sec_str(duration)
  min, sec = duration.divmod(100)
  total_in_seconds = min.minutes + sec.seconds
  Time.at(total_in_seconds).utc.strftime("%H:%M:%S")
end
custom_duration_to_hours_mn_sec_str(56) # 56 seconds
# => "00:00:56" 
custom_duration_to_hours_mn_sec_str(1456) # 14 mn 56 seconds
# => "00:14:56"
custom_duration_to_hours_mn_sec_str(12056) # 120 mn 56 seconds
# => "02:00:56"

限制:如果持续时间超过60*24分钟(24小时内的分钟数),它将再次开始到00:00:00'因此忽略了天数。

custom_duration_to_hours_mn_sec_str(60*24*100) # *100 to add the zeros for seconds
# => "00:00:00"