Ruby on rails 四舍五入到最近的半小时或一小时?
我使用假时间在我的UI中显示。我在操纵时间,使之像这样随机Ruby on rails 四舍五入到最近的半小时或一小时?,ruby-on-rails,ruby,time,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 你知道我怎么做吗?你可以用这个方法扩展时间类 我通常在lib/core\u ext目录中执行此操作 # lib/core_ext/time.rb class Time def round_off(s
date: Time.zone.now - (i % 9).days - rand(3).days - rand(2).hours + rand(60).minutes
不过,我想把时间调到最近的一小时,即下午3:35变为3:30
你知道我怎么做吗?你可以用这个方法扩展时间类 我通常在lib/core\u 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.
中的self.to\u f
。谢谢,我将在我的一个项目中测试我的代码,但我认为这也是代码风格