Я не нашел функцию Ruby-ish seconds_to_hours (хотя ее тривиально построить), но в конце этого поста есть очевидное решение.
s = Time.now
e = Time.now + 3.hours
d = e - s
=> 10803.318176
Примечание. Это значение просто число с плавающей точкой, представляющее секунды между двумя значениями даты.
Я бы хотел, чтобы часы вернулись. Для этого вы делитесь на время в секундах.
b = d / 1.hour.seconds
=> 3.0009217155555556
Моя цель состояла в том, чтобы получить десятичное значение часов, округленное до ближайших 6 минут, поэтому:
r = b.round(1)
=> 3.0
Подводя итог:
r = ((e - s) / 1.hour.seconds).round(1)
=> 3.0