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

我正在使用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')) 

我有什么选择?

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

 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