2014-02-28 258 views
0

我對日期時間字段的計算有問題。 我有兩個變量:日期時間範圍的計算

a = Sat, 01 Feb 2014 13:00:00 CET +01:00 

b = Fri, 28 Feb 2014 13:00:00 CET +01:00 

我要計算多少天從傳遞到B的範圍。 請幫助。

+0

您已經嘗試了一下(a..b)? – Severin

+0

定義一天何時過去。這個範圍是否與當天午夜時刻重疊?是否當範圍與一天中的任何時刻重疊?它是否從一天的開始到結束時重疊?等等。 – sawa

+0

你是指這兩個日期之間的差異,即a-b? – Pavan

回答

3

您可以使用它。

require 'date' 
(Date.parse('Fri, 28 Feb 2014 13:00:00 CET +01:00') - Date.parse('Sat, 01 Feb 2014 13:00:00 CET +01:00')).to_i 
=> 27 
i.e 
(Date.parse(b) - Date.parse(a)).to_i  
+0

這就是我要回答的問題,但你首先得到它。 +1 – Pavan

1
require 'date' 


a=Date.parse('Sat, 01 Feb 2014 13:00:00 CET +01:00') 
=> #<Date: 2014-02-01 (4913379/2,0,2299161)> 



b=Date.parse('Fri, 28 Feb 2014 13:00:00 CET +01:00') 
=> #<Date: 2014-02-28 (4913433/2,0,2299161)> 

b-a 
=> (27/1) 

(b-a).to_i 
=> 27 
1

您還可以使用time_diff寶石計算差值。

在你的寶石文件中添加gem 'time_diff'

我已經添加在index.html.erb的代碼,但,在那裏你想你可以任意使用。

看看下面的代碼。

<% require 'time_diff' %> 

<% a = Time.diff(Time.parse('Sat, 01 Feb 2014 13:00:00 CET +01:00'), Time.parse('Fri, 28 Feb 2014 13:00:00 CET +01:00'), "%d") %> 
<%= a[:diff] %> 

,我得到了以下結果

「27日」

您也可以採取 https://github.com/abhidsm/time_diff