Ruby / Rails:以最接近15分钟的增量获取时间

时间:2018-08-27 21:54:41

标签: ruby-on-rails ruby time rounding

我正在尝试将当前时间四舍五入为最接近的15分钟增量。

例如,如果当前时间是“ 4:37 pm”,我希望将其舍入为“ 4:30 pm”。如果是“下午4:41”,则应四舍五入为“下午4:45”。

原因是我的HTML选择具有15分钟的增量,并且我想默认将其选择为根据时间选择最接近的选项。

我遇到了一些有效的代码,但看起来很笨拙:

C

我很惊讶没有像increment = 15*60 # => 900 (15 min in seconds) current_time = Time.zone.now # => Mon, 27 Aug 2018 17:50:31 EDT -04:00 Time.at((current_time.to_r / increment).round * increment) # => 2018-08-27 17:45:00 -0400

这样的内置时间函数

它在那里并且我只是想念它吗?

1 个答案:

答案 0 :(得分:2)

这似乎很笨拙,因为您必须在那儿做几行数学运算,但这对我来说似乎是一个很好的解决方案。有时,您必须放弃优雅的功能。