【发布时间】:2017-10-06 16:59:32
【问题描述】:
我正在使用假时间在我的 UI 中显示。我正在像这样随意操纵时间。
date: Time.zone.now - (i % 9).days - rand(3).days - rand(2).hours + rand(60).minutes
但是我想四舍五入到最接近的时间,即下午 3.35 变为 3.30
你知道我该怎么做吗?
【问题讨论】:
标签: ruby-on-rails ruby time
我正在使用假时间在我的 UI 中显示。我正在像这样随意操纵时间。
date: Time.zone.now - (i % 9).days - rand(3).days - rand(2).hours + rand(60).minutes
但是我想四舍五入到最接近的时间,即下午 3.35 变为 3.30
你知道我该怎么做吗?
【问题讨论】:
标签: ruby-on-rails ruby time
您可以使用此方法扩展时间类 我通常在 lib/core_ext 目录中执行此操作
# lib/core_ext/time.rb
class Time
def round_off(seconds = 60)
Time.at((self.to_f / seconds).round * seconds)
end
end
现在你可以做类似的事情
time = Time.zone.now - rand(3).days - rand(2).hours + rand(60).minutes
time.round_off(30.minutes)
希望对你有帮助
【讨论】:
self.to_f 中不需要 self.。