【发布时间】:2023-04-08 04:49:01
【问题描述】:
我正在尝试将当前时间四舍五入到最接近的 15 分钟增量。
例如,如果当前时间是“下午 4:37”,我希望它四舍五入到“下午 4:30”。如果是“下午 4 点 41 分”,则应该四舍五入到“下午 4 点 45 分”。
原因是我有一个以 15 分钟为增量的 HTML 选择,我想将其默认为根据时间选择最接近的选项。
我遇到了一些有效的代码,但看起来很笨拙:
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
我很惊讶没有像 Time.now.round_to_closest(increment_in_min: 15) 这样的内置时间函数
它在那里,我只是想念它吗?
【问题讨论】:
-
您可以使用有效的代码编写该方法,并将其添加到 Time 作为改进?
-
@dinjas:我认为您是正确的,这是该问题的重复。我应该关闭/删除这个问题,还是有链接/合并类似问题的流程?
-
将其标记为重复,它将链接到标题中的另一个问题。无需删除问题。
标签: ruby-on-rails ruby time rounding