我想将持续时间转换为毫秒。所以我有这个表达......
Time.parse(duration_expr).seconds_since_midnight * 1000
其中持续时间表达式为“HH:MM:SS”。但是,如果持续时间表达式的形式为“MM:SS”或仅为“SS”,则上述情况无法产生正确的毫秒数。如何使用“MM:SS”或“SS”这样的表达式并将其转换为“HH:MM:SS”?
我正在使用Rails 4.2.3。谢谢, - 戴夫
答案 0 :(得分:0)
为什么你不能填充字符串?即如果长度为5个字符,请输入" 00:"在前面,如果它长2个字符,请放置" 00:00:"在前面。 Time.parse
将对这两个都很好。
我确信有更好的方法可以使用正则表达式和字符串格式化程序,但这是您想要的基本逻辑。 (只要你的格式不会比这里暗示的更复杂。)
答案 1 :(得分:0)
试试这个
def convert_to_hrs(string)
case string.count(':')
when 0
'00:00:' + string.rjust(2, '0')
when 1
'00:' + string
else
string
end
end
[30] pry(main)> convert_to_hrs('1')
=> "00:00:01"
[31] pry(main)> convert_to_hrs('12:01')
=> "00:12:01"
[32] pry(main)> convert_to_hrs('12:12:01')
=> "12:12:01"