计算两个Time对象之间的时间差

假设我从用户模型中创建两个时间对象:

created = u.created_at updated = u.updated_at 

如何计算两个时间对象之间的小时数差异?

 hours = created - updated 

我想将它包装在一个方法中并扩展Time类。 我发现很难相信我需要扩展它,但我似乎无法找到一个处理使用不同时间单位计算经过时间的本机方法。

这应该工作:

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

相关问题: Rails时间差以小时为单位

另一种选择是使用distance_of_time_in_words助手:

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

希望对你有帮助 :)

我想使用特定于rails的方法添加备用答案。 Time类有一个名为minus_with_coercion的方法。 它比较两次并以秒为单位返回结果。

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