我有一个看起来像这样的音频标签:“ 00:14:164
”,即“ MM:SS:splits
”。
我希望格式为数字,并且仅以秒为单位。
例如:
“ 00:14:164
”将是14.164
和
“ 01:59:582
”将是119.582
这样做的最佳方法是什么?
我有一个看起来像这样的音频标签:“ 00:14:164
”,即“ MM:SS:splits
”。
我希望格式为数字,并且仅以秒为单位。
例如:
“ 00:14:164
”将是14.164
和
“ 01:59:582
”将是119.582
这样做的最佳方法是什么?
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