我正在尝试将当前时间舍入到最接近的15分钟增量。
例如,如果当前时间是“4:37 to”,我希望它四舍五入为“4:30 to”。如果是“4:41 to”,则应该是“4:45 to”。
这样做的原因是我有一个以15分钟为增量的HTML select,我想默认它根据时间选择最近的选项。
我遇到了一些可以工作的代码,但它看起来很笨拙:
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)
这样的内置时间函数
它就在那里,我只是错过了它?
发布于 2018-08-28 06:33:19
它可能看起来很笨拙,因为你必须在几行代码上做一些数学计算,但对我来说这看起来是一个很好的解决方案。有时你不得不为了功能而放弃优雅。
https://stackoverflow.com/questions/52047471
复制相似问题