你的计算是关闭:
- 第二有1000毫秒
- 一分钟有1000×60毫秒
- 小时有1000×60×60毫秒
要获得(完整)小时数,您必须将毫秒数除以1000×60×60。其余的可以用来以类似的方式计算分钟数。
这是divmod
是什么:
def get_duration_hrs_and_mins(milliseconds)
return '' unless milliseconds
hours, milliseconds = milliseconds.divmod(1000 * 60 * 60)
minutes, milliseconds = milliseconds.divmod(1000 * 60)
seconds, milliseconds = milliseconds.divmod(1000)
"#{hours}h #{minutes}m #{seconds}s #{milliseconds}ms"
end
get_duration_hrs_and_mins(123456789)
#=> "34h 17m 36s 789ms"
我添加秒和毫秒到输出用于演示目的。我还用一个保护子句替换了rescue
块,假设你想处理nil
的值。
'60000 * 60000'是一小时* micro *秒的数量。 – Stefan
@Stefan对不起,这是一个复制和粘贴问题。然而,我仍然只得到分钟而不是几个小时。 – Cameron