Я использую Rails 4.2.7. Я хочу рассчитать количество миллисекунд, учитывая продолжительность, которая может включать часы, минуты и секунды. Поэтому я написал эти две функции:Как преобразовать эту строку в миллисекунды?
def convert_to_hrs(string)
if !string.nil?
string.strip!
case string.count(':')
when 0
'00:00:' + string.rjust(2, '0')
when 1
'00:' + string
else
string
end
else
"00:00:00"
end
end
def duration_in_milliseconds(input)
input = convert_to_hrs(input)
if input.match(/\d+:\d\d:\d\d\.?\d*/)
h, m, s = input.split(':').map(&:to_i)
(h.hours + m.minutes + s.seconds) * 1000
else
0
end
end
К сожалению, когда я звоню duration_in_milliseconds(input)
с номером, как 8:49
, результат zero
. Результат должен интерпретироваться как 8 minutes and 49 seconds
, который в миллисекундах будет 529000
. Как мне настроить выше, чтобы учесть это?
Это означает, что ваш условный не удалось, и подразумевает ваше регулярное выражение неверно. Можете ли вы привести примеры входных строк? –