Ответ 1
((date_2 - date_1) / 3600).round
или
((date_2 - date_1) / 1.hour).round
Я пытаюсь получить разницу в часах для двух разных экземпляров Time. Я получаю эти значения из БД как столбец: datetime
Как я могу сделать это, чтобы он включал месяцы и годы, а также в вычислениях, игнорируя или округляя минуты? Можно ли это сделать только вручную или есть функция для этого?
((date_2 - date_1) / 3600).round
или
((date_2 - date_1) / 1.hour).round
Попробуйте разницу по времени для Ruby на https://rubygems.org/gems/time_difference
start_time = Time.new(2013,1)
end_time = Time.new(2014,1)
TimeDifference.between(start_time, end_time).in_years
это отлично работает, пример за количество часов с момента создания учетной записи пользователя
(Time.parse(DateTime.now.to_s) - Time.parse(current_user.created_at.to_s))/3600
Вы можете использовать драгоценный камень под названием time_diff, чтобы получить разницу во времени в очень полезных форматах
Вы можете использовать метод Rails distance_of_time_in_words
distance_of_time_in_words(starting_time, ending_time, options = {include_seconds: true })