Я пытаюсь округлить текущее время с ближайшим 15-минутным шагом.
Например, если текущее время «4:37 вечера», я хочу, чтобы оно было округлено до «4:30 вечера». И если бы это было «4:41 вечера», оно должно округляться до «4:45 вечера».
Причина этого в том, что у меня есть выбор HTML с 15-минутными приращениями, и я хочу установить его по умолчанию, чтобы выбрать ближайший вариант по времени.
Я сталкивался с кодом, который работает, но кажется неуклюжим:
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)
Это там, и я просто скучаю по нему?