比较日期时间和时间会产生错误的结果

时间:2015-03-31 02:58:53

标签: ruby-on-rails ruby

我正在使用Mongoid和Chronic gem。 Chronic生成Time对象,而Mongoid Date对象生成DateTime对象。所以在Mongoid,当我今天想要的时候,我会做这样的事情:

Lead.last.send('lead date') # => {DateTime}2015-03-30T00:00:00-04:00

在慢性病中,当我今天解析时,我明白了:

Chronic.parse('today') # => {Time}2015-03-30 23:00:00 -0400

我将两者与==进行比较,它产生错误,即使它们是相同的日期。当“提前约会”指今天时,我需要以下查询来给出结果:

Lead.where("lead date" => Chronic.parse('today'))

我有哪些选择?

1 个答案:

答案 0 :(得分:0)

此代码是否准确复制了您的问题?

require 'chronic'
require 'date'
text = "2015-03-30T00:00:00-04:00"
datetime = DateTime.parse(text)
time = Chronic.parse(text)
datetime == time
#=> false

使用DateTime #to_time方法或Time #to_datetime方法:

datetime.to_time == time
#=> true

datetime == time.to_datetime
#=> true
相关问题