Почему Rails сравнение даты не работает? - PullRequest
0 голосов
/ 18 мая 2010

Что мне здесь не хватает, это сводит меня с ума ..

>> 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 ]

5 голосов
/ 18 мая 2010

«Больше чем» для даты означает «после». 24.hours.ago дает время, а не отрезок времени. Концептуально, вы спрашиваете «входил ли пользователь через 24 часа назад?», А не «входил ли пользователь более 24 часов назад?» Итак, вы хотите:

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

Который говорит "входил ли пользователь раньше 24 часов назад?"

1 голос
/ 18 мая 2010

Вы используете «больше чем», что при сравнении дат означает «позже, чем»

Текущий вход в систему позже, чем 24 часа назад?

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

Текущий вход в систему раньше, чем 24 часа назад?

user.current_login_at.utc < 24.hours.ago.utc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...