2010-05-18 53 views
0

缺少什麼我在這裏,它的駕駛我瘋了..爲什麼Rails日期比較不起作用?

>> user.current_login_at.utc > 24.hours.ago.utc 
=> false 
>> 24.hours.ago.utc 
=> Mon May 17 18:46:16 UTC 2010 
>> user.current_login_at.utc 
=> Mon May 17 15:47:44 UTC 2010 

user.current_login_at爲27小時前,但比比較大說,這是不超過24小時前。它讓我撓我的頭。

回答

5

「大於」的日期意味着「之後」。 24.hours.ago給出了一段時間,而不是一段時間。從概念上講,你問的問題是「用戶在24小時前登錄了嗎?」,而不是「用戶登錄超過24小時以前?」。所以你想:

user.current_login_at.utc < 24.hours.ago.utc 

這說「用戶登錄24小時前?

+1

Jinx!英雄所見略同。 – 2010-05-18 19:16:43

+0

呃..我的大腦受傷了。看起來如此明顯..現在。 :d – revgum 2010-05-18 20:35:52

1

您正在使用「大於」,這是比較日期,意思是「晚於」

是當前登錄後超過24小時?

user.current_login_at.utc > 24.hours.ago.utc 

當前是否在24小時前登錄?

user.current_login_at.utc < 24.hours.ago.utc