在导轨上的日期时间操作

问题描述:

是否可以从另一个日期时间中减去一个日期时间并在时间中获得结果。 如果从2011-08-29 08:13:00 UTC减去2011-08-27 01:00:00 UTC,结果应该是55:13:00(希望我在调用时没有犯错: p) 谢谢。在导轨上的日期时间操作

+0

http://*.com/questions/279769/convert-to-from-datetime-and-time-in-ruby – Mchl

如果需要,时间通常用秒表示,如果需要的话,甚至可以是小数秒。 A Time代表一个特定的时间点,虽然内部表示为自1970年1月1日以来的秒数,但并不打算成为这样的标量单位。

如果你有两个DateTime的对象,就可以判断这样它们之间的区别:

diff = DateTime.parse('2011-08-29 08:13:00 UTC').to_time - DateTime.parse('2011-08-27 01:00:00 UTC').to_time 
# => 198780.0 

一旦你的秒数,剩下的就是一个简单的格式问题:

'%d:%02d:%02d' % [ diff/3600, (diff/60) % 60, diff % 60 ] 
# => "55:13:00" 
+0

伟大的这正是我想要的,但我有一个小问题,当我这样做:diff = DateTime.parse(@project.deadline.to_s).to_time - DateTime.parse(DateTime.now.to_s).to_time with project.deadline.to_s =“2011-08-25T09:25:00 + 00:00” and DateTime.now.to_s =“2011-08-25T09:24:36 + 02:00” 结果是“2:00:24” 虽然应该是“0:00:24” – kbaccouche

+1

忘掉这个愚蠢的问题,问题修复了。这是因为我再分析一次。现在我正在这样做: diff = @ project.deadline.to_s.to_time - DateTime.now.to_s.to_time,它的工作完美:) 非常感谢! – kbaccouche