2 个日期时间之间的小时差



我想找到 2 个日期时间之间的小时差异。在红宝石中。最好的方法是什么?

a1 = DateTime.now - dt1
=> (84390054590833/28800000000000)
a1.to_i
=> 2 # it's not in hours; the real amount of hours is around 70 for this case

还是将它们都转换为时间然后减去更好?必须为我的任务保留时区信息。

首先,从文档中:

那么什么时候应该在 Ruby 中使用 DateTime,什么时候应该使用 Time?几乎可以肯定的是,您会想要使用Time因为您的应用程序可能正在处理当前日期和时间。但是,如果您需要在历史上下文中处理日期和时间,则需要使用DateTime...

如果你想继续使用 DateTime ,它的减法会给你一天的分数

DateTime.new(2000, 1, 3) - DateTime.new(2000, 1, 1)
# (2/1)

把它变成几个小时实际上是不可能的,因为每天并不总是24小时。您需要转换为Time对象才能获得以秒为单位的差异,然后从秒转换为小时

diff_in_hours = (dt1.to_time - dt2.to_time) / 3_600

相关内容

  • 没有找到相关文章

最新更新