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

rev*_*gum 0 datetime ruby-on-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
Run Code Online (Sandbox Code Playgroud)

user.current_login_at是在27小时前发布的,但比对比表明它不超过24小时前.它让我挠头.

Nic*_*wis 5

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

user.current_login_at.utc < 24.hours.ago.utc
Run Code Online (Sandbox Code Playgroud)

其中说"用户在24小时前登录了吗?"