如何将时间以秒为单位转换为标准时间格式?

问题描述:

如何转换时间,以秒为标准时间格式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

没有帮手为你的导轨。但它很容易编写自己:

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

虽然Ariejan的回答是完全OK,仅供参考我点到另一个,在Ruby-doc Time class docs给予(滚动至底部,搜索其他注释)。总之,有一个数字转换成时间实例的方法:

Time.at(number) 

这反过来又可以使用strftime "%T"呈现。警告:据我所知,它不会显示超过23小时的Time实例。

+0

这提供绝对时间,而提问者询问相对时间。 – 2014-08-18 15:18:47