紅寶石1.9.3dev(2011-09-23的修訂33323)[i686的Linux的]導軌相比返回false
當由date.end_of_day.to_datetime和date.to_datetime.end_of_day返回Rails的3.0.20
爲什麼最近在一個項目上工作on Rails的有關日期時間RSpecs我發現,在給定日期 通過下面的語句
發出的值和
相比date.to_datetime.end_of_day
雖然它們表示相同的日期 - 時間返回false。
爲了證實這一點,我打開了Rails的控制檯,並嘗試了以下
1.9.3dev :053 > monday = Time.now.monday
=> 2013-02-25 00:00:00 +0530
1.9.3dev :054 > monday.class
=> Time
1.9.3dev :055 > d1 = monday + 1.hour
=> 2013-02-25 01:00:00 +0530
1.9.3dev :056 > d2 = monday + 1.hour
=> 2013-02-25 01:00:00 +0530
1.9.3dev :058 > d1_eod_datetime = d1.end_of_day.to_datetime
=> Mon, 25 Feb 2013 23:59:59 +0530
1.9.3dev :059 > d2_eod_datetime = d2.to_datetime.end_of_day
=> Mon, 25 Feb 2013 23:59:59 +0530
1.9.3dev :061 > d1_eod_datetime == d2_eod_datetime
=> false
1.9.3dev :062 > d3_eod_datetime = d2.to_datetime.end_of_day
=> Mon, 25 Feb 2013 23:59:59 +0530
1.9.3dev :063 > d2_eod_datetime == d3_eod_datetime
=> true
,似乎我的觀察看correct.That是:
當d1_eod_datetime和d2_eod_datetime比較它返回false
當d2_eod_datetime和d3_eod_datetime是compa紅其返回true
看起來不一致的行爲給我,但是希望如果有人 可以讓我明白是怎麼回事幕後,爲什麼值進行了比較 使用date.end_of_day。 to_datetime和 date.to_datetime.end_of_day雖然來源日期對象表示相同的日期時間。
感謝,
Jignesh
查看相關問題:http://stackoverflow.com/questions/8763050/how-to-compare-time-in-ruby – kristinalim 2013-09-21 23:04:30