Rails4.2.7を使用しています。時間、分、秒を含む可能性のある期間を指定して、ミリ秒数を計算したいと思います。だから私はこれらの2つの関数を書きました:
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
。として解釈される必要があります。これを説明するために上記を調整するにはどうすればよいですか?
これはここに残しておきます:
def convert_to_ms(string)
string.split(':').map(&:to_i).inject(0) { |a, b| a * 60 + b } * 1000
end
convert_to_ms('8:49')
#=> 529000
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加