2012-06-14 1 views
0

У меня есть звуковой тег, который выглядит так: «00:14:164», т. Е. «MM:SS:splits».Как конвертировать MM: SS: делится на MM: SSSS?

Я хочу, чтобы формат был числовым и только в секундах.

Так, например:

"00:14:164" будет 14.164

и

"01:59:582" будет 119.582

Что такое лучший способ сделать это?

+0

Вы хотите просто отображать значение в секундах, в представлении или на самом деле хранить в течение нескольких секунд в БД? – cdesrosiers

ответ

2
def tag_to_f(tag) 
    a = tag.split(':').map(&:to_i) 
    "#{a[0] * 60 + a[1]}.#{a[2]}".to_f 
end 

tag_to_f "01:59:582" 

Или обезьяны патч String:

class String 
    def to_f_with_audio_tag 
    if a = match(/^(\d+):(\d+):(\d+)$/).to_a[1..3].map(&:to_i) rescue nil 
     "#{a[0] * 60 + a[1]}.#{a[2]}".to_f_without_audio_tag 
    else 
     to_f_without_audio_tag 
    end 
    end 

    alias_method_chain :to_f, :audio_tag 
end 

"01:59:582".to_f 
Смежные вопросы