为什么Rails日期比较不起作用?

时间:2010-05-18 18:52:08

标签: ruby-on-rails datetime

我在这里错过了什么,这让我发疯了......

>> 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小时前。它让我挠头......

2 个答案:

答案 0 :(得分:5)

“大于”日期表示“之后”。 24.hours.ago给出时间,而不是一段时间。从概念上讲,您问的是“用户是否在24小时之后登录?”,而不是“用户是否在24小时前登录?”。所以你想要:

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

哪个说“用户是否在24小时之前登录了?”

答案 1 :(得分:1)

您使用的是“大于”,在日期比较中,意思是“晚于”

当前登录的时间是否超过24小时?

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

当前登录是否早于24小时前?

user.current_login_at.utc < 24.hours.ago.utc
相关问题