Вычисление разницы во времени между двумя объектами Time

Скажем, я создаю два объекта времени из моей модели пользователя:

created = u.created_at
updated = u.updated_at

Как рассчитать разницу между часами между двумя объектами времени?

hours = created - updated

Я хотел бы обернуть это методом и расширить класс Time. Мне трудно поверить, что мне нужно расширить его, но я не могу найти собственный метод, который обрабатывает прошедшее время с использованием разных единиц времени.

Ответ 2

Другой вариант - использовать помощник distance_of_time_in_words:

<%= distance_of_time_in_words u.created_at, u.updated_at %>

Надеюсь, вы сочтете это полезным :)

Ответ 3

Я хотел бы добавить альтернативный ответ, используя метод, специфичный для рельсов. Класс Time имеет метод minus_with_coercion. Он сравнивает два раза и возвращает результат в секундах.

hours=(created.minus_with_coercion(updated)/3600).round