日期时间范围的计算

时间:2014-02-28 12:07:02

标签: ruby-on-rails ruby postgresql ruby-on-rails-4

我在datetime字段上有计算问题。 我有两个变量:

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

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

我想计算从a到b范围的天数。 请帮助。

3 个答案:

答案 0 :(得分: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    

答案 1 :(得分: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 

答案 2 :(得分:1)

您还可以使用 time_diff gem 来计算差异。

在您的gem文件中添加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