gpt4 book ai didi

ruby-on-rails - 将持续时间转换为小时 :minutes:seconds (or similar) in Rails 3 or Ruby

转载 作者:数据小太阳 更新时间:2023-10-29 06:17:52 24 4
gpt4 key购买 nike

我觉得有一种简单/内置的方法可以做到这一点,但我找不到。

我有一个整数的持续时间(以秒为单位),我想以一种友好的格式显示它。

例如3600 将显示为“01:00:00”或“1 小时”或其他内容。

我可以用 time_ago_in_words(Time.zone.now+3600) 来做到这一点,但这感觉有点像 hack,没有理由只是为了格式化而从当前时间中添加/减去这个值。是否有 duration_in_words() 之类的东西?

谢谢

最佳答案

总结:

假设 total_seconds = 3600

选项 1:

distance_of_time_in_words(total_seconds) #=> "about 1 hour"

选项 2:

Time.at(total_seconds).utc.strftime("%H:%M:%S") #=> "01:00:00"

注意:它会溢出,例如。对于 total_seconds = 25.hours.to_i,它还会返回 "01:00:00"

选项 3:

seconds = total_seconds % 60
minutes = (total_seconds / 60) % 60
hours = total_seconds / (60 * 60)

format("%02d:%02d:%02d", hours, minutes, seconds) #=> "01:00:00"

选项 4:

ActiveSupport::Duration.build(total_seconds).inspect #=> "1 hour"

# OR

parts = ActiveSupport::Duration.build(total_seconds).parts
"%02d:%02d:%02d" % [parts.fetch(:hours, 0),
parts.fetch(:minutes, 0),
parts.fetch(:seconds, 0)] #=> "01:00:00"

关于ruby-on-rails - 将持续时间转换为小时 :minutes:seconds (or similar) in Rails 3 or Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4175733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com