RoR 3的日期差异
我有两个日期,分别是2011-03-01 00:00:00 UTC
和2011-03-31 00:00:00 UTC
。当我尝试在它们之间获得天数时,它将返回2592000.0
天。为什么?应该是30天?RoR 3的日期差异
要得到日期之间的日期我使用-
像date1 - date2
。我怎样才能获得正确的区别?
我的环境是Ruby 1.8.7和Rails 3.0.3。
我从数据库取回数据,然后像做以下:
//--some html code
<td>
<%@data.each do |data|%>
<%=(@data.date1 - @data.date2).to_i%>
<%end%>
</td>
//--some html code
数据类型以dB为DateTime
。
2592000其实是正确的。很快。 2592000秒是30天。 (30天* 24小时/天* 60分钟/小时* 60秒/分钟= 2592000秒)。
干杯!
编辑:以秒转换为天,除以24 * 60 * 60或86400
require 'DateTime' today = DateTime.now bday = today - 1063 #Date before 1063 days (today - birthday).to_i # 1063 Now it should be clear. :)
@Ashish:我不明白你的逻辑。你能否详细说明一下? – 2011-03-09 05:59:33
我已编辑帖子。 – Ashish 2011-03-09 06:33:29
@Ashish:当我使用'(date1-date2).to_i'时,它返回'2592000'。这是不正确的。 – 2011-03-09 08:26:41
尝试:
(@data.date1 - @data.date2).to_i/1.day # 1.day.to_i => 86400
或
(@data.date1.to_date - @data.date2.to_date).to_i
这种转换,它会工作对于时间和日期时间
Thnx。现在我明白了。 – 2011-03-13 07:18:33