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

时间:2011-07-22 00:46:49

标签: ruby-on-rails ruby time

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

created = u.created_at
updated = u.updated_at

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

hours = created - updated

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

3 个答案:

答案 0 :(得分:38)

这应该有效:

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

相关问题:Rails Time difference in hours

答案 1 :(得分:13)

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

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

我希望你觉得它很有用:)

答案 2 :(得分:10)

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

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