2015-07-27 5 views
0

Извините, если об этом уже был дан ответ, но я просмотрел несколько подобных вопросов и не совсем видел эту проблему. Я пытаюсь сравнить два TimeWithZone объекты один из created_at из моей модели, а другой объект time.agoСравнение Ruby/Rails TimeWithZone Объекты

created_at объект DateTime:

entry.created_at 
=> Mon, 27 Jul 2015 08:47:32 UTC +00:00 

Объект time.ago:

1.minute.ago 
=> Mon, 27 Jul 2015 10:23:29 UTC +00:00 

Сравнивая их возвращает неправильно:

entry.created_at > 1.minute.ago 
=> false 

или

entry.created_at < 1.minute.ago 
=> true   

Похоже, что на самом деле они сравнивают их как строки, если это правда, как я могу преобразовать их в сопоставимый формат?

ответ

0

Mon, 27 Jul 2015 08:47:32 UTC +00:00 более ранний (поэтому нет) тогда Mon, 27 Jul 2015 10:23:29 UTC +00:00.

Он сравнивает это право.

+0

Да, спасибо, это имеет смысл, когда вы так говорите. Я думаю, что это просто то, как он читает, может быть запутанным. Например, «эта запись была создана менее минуты назад» может заставить думать, что она была создана за последние 60 секунд. –

+0

@ChrisWilliams да, работа с объектами date/datetime немного запутанна в целом –

Смежные вопросы