2010-10-27 116 views
2

如何轉換時間,以秒爲標準時間格式rails.For例如1971秒 應顯示爲0點33分25秒如何將時間以秒爲單位轉換爲標準時間格式?

+0

我認爲你的計算部分是錯誤的。見1971/60給你一個值32.85。這並不意味着32分鐘和85秒,但它意味着32分鐘加上0.85分鐘,這等於51秒。這意味着1971秒會給你32.51秒。因此,我認爲@ Ariejan的答案是正確的,雖然我沒有測試過,我也不能保證它是完美的解決方案。 – Rohit 2010-10-27 12:41:09

+0

@ user475748我認爲你必須接受@Ariejan的答案。我對它進行了測試,並且它按照您的要求正常工作。 – Rohit 2010-10-27 12:50:25

回答

2

沒有幫手爲你的導軌。但它很容易編寫自己:

def to_dot_time(s) 
    h = s/3600 
    s -= h * 3600 

    m = s/60 
    s -= m * 60 

    [h, m, s].join(":") 
end 

和示例:

>> to_dot_time(1971) 
=> "0:32:51" 
+1

也不是說你的問題中的0:33:25在1971秒內是錯誤的。或者您是否使用其他方法來計算該值? – Ariejan 2010-10-27 12:17:41

-1

雖然Ariejan的回答是完全OK,僅供參考我點到另一個,在Ruby-doc Time class docs給予(滾動至底部,搜索其他註釋)。總之,有一個數字轉換成時間實例的方法:

Time.at(number) 

這反過來又可以使用strftime "%T"呈現。警告:據我所知,它不會顯示超過23小時的Time實例。

+0

這提供絕對時間,而提問者詢問相對時間。 – 2014-08-18 15:18:47

相關問題