我有2个日期2011-03-01 00:00:00 UTC
和2011-03-31 00:00:00 UTC
。当我试图让他们之间的日子时,它会返回2592000.0
天。为什么?应该是30天?
为了在日期之间获取天数,我使用-
date1 - date2
。我怎样才能得到正确的差异?
我的环境是带有Rails 3.0.3的Ruby 1.8.7。
我从db检索数据然后执行以下操作:
//--some html code
<td>
<%@data.each do |data|%>
<%=(@data.date1 - @data.date2).to_i%>
<%end%>
</td>
//--some html code
db中的数据类型为DateTime
。
答案 0 :(得分:1)
2592000实际上是正确的。很快。 2592000秒是30天。 (30天* 24小时/天* 60分钟/小时* 60秒/分钟= 2592000秒)。
干杯!
编辑:将秒数转换为天数,除以24 * 60 * 60或86400。
答案 1 :(得分:1)
尝试:
(@data.date1 - @data.date2).to_i / 1.day # 1.day.to_i => 86400
或
(@data.date1.to_date - @data.date2.to_date).to_i
通过此转换,它将同时适用于Time和DateTime
答案 2 :(得分:0)
require 'DateTime' today = DateTime.now bday = today - 1063 #Date before 1063 days (today - birthday).to_i # 1063 Now it should be clear. :)