Расчет разницы во времени между двумя объектами времени - PullRequest
14 голосов
/ 22 июля 2011

Допустим, я создал два временных объекта из моей пользовательской модели:

created = u.created_at
updated = u.updated_at

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

hours = created - updated

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

Ответы [ 3 ]

39 голосов
/ 22 июля 2011

Это должно работать:

hours = ((created - updated) / 1.hour).round

Вопрос по теме: Рельсы Разница во времени в часах

13 голосов
/ 15 мая 2013

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

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

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

10 голосов
/ 22 июля 2011

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

hours=(created.minus_with_coercion(updated)/3600).round
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...