QA@IT

数字から時間フォーマットに変換する方法は何ですか?

6460 PV

例:
3661(s)

01:01:01

Ruby on Railsで、計算ヘルパーがありますか?

回答

ruby-durationというユーティリティが便利でよく使っています。

https://github.com/peleteiro/ruby-duration

require 'ruby-duration'

d = Duration.new(3661)
 => #<Duration:0x007fc5bb051698 @seconds=1, @total=3661, @weeks=0, @days=0, @hours=1, @minutes=1>

d.format('%H:%M:%S')
 => "01:01:01"
編集 履歴 (0)
  • これもいいね!
    ご紹介ありがとうございます。
    -

TimeSpanクラスはないので、適当な0時0分0秒を基準にし、ActiveSupportを利用して

Time.now.midnight.advance(:seconds => 3661).strftime('%T')
=> "01:01:01"

のようにするとよいと思います。

編集 履歴 (0)
  • 秒加算なら、advanceを使わずとも単に+で加算するだけでよかった。 -
  • Thank you. -
ウォッチ

この質問への回答やコメントをメールでお知らせします。