【问题标题】:How to convert time in seconds to standard time format in rails?如何以秒为单位将时间转换为rails中的标准时间格式?
【发布时间】:2010-10-27 11:56:38
【问题描述】:

如何将时间以秒为单位转换为 Rails 中的标准时间格式。例如 1971 秒 应该显示为 0:33:25

【问题讨论】:

  • 我认为你的计算部分是错误的。请参阅 1971/60 给您一个值 32.85。这并不意味着 32 分 85 秒,而是意味着 32 分钟加上 0.85 分钟,即 51 秒。这意味着 1971 秒将为您提供 32.51 秒。因此,我认为@Ariejan 的答案是正确的,尽管我没有对其进行测试,并且我不保证它是完美的解决方案。
  • @user475748 我认为你必须接受@Ariejan 的回答。我对其进行了测试,它可以按照您的要求完美运行。

标签: ruby-on-rails time


【解决方案1】:

在 Rails 中没有帮手。但是自己编写很容易:

def to_dot_time(s)
  h = s / 3600
  s -= h * 3600

  m = s / 60
  s -= m * 60

  [h, m, s].join(":")
end

还有一个例子:

>> to_dot_time(1971)
=> "0:32:51"

【讨论】:

  • 也不是说你问题中的 0:33:25 在 1971 秒内是错误的。或者您是否使用了其他方法来计算该值?
【解决方案2】:

虽然 Ariejan 的答案完全没问题,但仅供参考,我在 Ruby-doc Time class docs 上给出了另一个答案(滚动到底部,搜索附加说明)。简而言之,有一种方法可以将 Numeric 转换为 Time 实例:

Time.at(number)

这反过来又可以使用strftime "%T" 呈现。注意:据我所知,它不会显示超过 23 小时的 Time 实例。

【讨论】:

  • 这提供了绝对时间,而提问者询问的是相对时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-10
  • 2013-11-11
  • 2011-05-07
相关资源
最近更新 更多