你的計算是關閉:
- 第二有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