2016-06-16 4 views
0

期間をミリ秒に変換します。だから私はこの表現を持っています...期間を時間、分、秒にフォーマットするにはどうすればよいですか?

Time.parse(duration_expr).seconds_since_midnight * 1000 

持続表現が "HH:MM:SS"の形式です。ただし、期間表現が「MM:SS」または「SS」の形式である場合、上記の数は正しいミリ秒数に失敗します。 「MM:SS」や「SS」のような表現を「HH:MM:SS」に変換するにはどうすればよいですか?

私はRails 4.2.3を使用しています。ありがとう、 - Dave

答えて

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" 
をお試しください
0

なぜ文字列を埋めていけないのですか?つまり、5文字の場合は先頭に「00:」を入れ、2文字の場合は先頭に「00:00:」と書いてください。 Time.parseはどちらもうまく動作します。

正規表現と文字列フォーマッタを使用する方がきれいですが、それは必要な基本ロジックです。 (あなたのフォーマットである限りは、ここでは暗黙のより複雑取得するつもりはありません。)

関連する問題