2011-03-09 83 views
0

我有兩個日期,分別是2011-03-01 00:00:00 UTC2011-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

回答

1

2592000其實是正確的。很快。 2592000秒是30天。 (30天* 24小時/天* 60分鐘/小時* 60秒/分鐘= 2592000秒)。

乾杯!

編輯:以秒轉換爲天,除以24 * 60 * 60或86400

+0

Thnx。現在我明白了。 – 2011-03-13 07:18:33

0
 
require 'DateTime' 

today = DateTime.now 
bday = today - 1063 #Date before 1063 days 
(today - birthday).to_i # 1063 

Now it should be clear. :) 
+0

@Ashish:我不明白你的邏輯。你能否詳細說明一下? – 2011-03-09 05:59:33

+0

我已編輯帖子。 – Ashish 2011-03-09 06:33:29

+0

@Ashish:當我使用'(date1-date2).to_i'時,它返回'2592000'。這是不正確的。 – 2011-03-09 08:26:41

1

嘗試:

(@data.date1 - @data.date2).to_i/1.day # 1.day.to_i => 86400 

(@data.date1.to_date - @data.date2.to_date).to_i 

這種轉換,它會工作對於時間和日期時間