2015-03-31 76 views
1

我正在使用Mongoid和慢性寶石。 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')) 

我有什麼選擇?

回答

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方法,或時間#to_datetime方法:

datetime.to_time == time 
#=> true 

datetime == time.to_datetime 
#=> true