Сравнение дат не работает для разных лет, но работает хорошо для того же года - PullRequest
0 голосов
/ 09 ноября 2018

Я хочу сравнить следующие даты с разными годами и сохранением статуса:

@date = DateTime.now.strftime("%d-%b-%Y")
@valid_to_date = @new_certificate.valid_to.strftime("%d-%b-%Y")
if @valid_to_date == @date
  @new_certificate.update_attributes(status: 1)
elsif @valid_to_date > @date
  @new_certificate.update_attributes(status: 2)
elsif @valid_to_date < @date
  @new_certificate.update_attributes(status: 3)
else
end

Работает нормально в те же годы, но в разные годы не работает. Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 09 ноября 2018

Если вы хотите сравнить даты как даты, а не как определенный формат строки, который вы написали, то сравните их как даты:

@date = Date.today
@valid_to_date = @new_certificate.valid_to.to_date

Даже если вы выбрали сравнение дат в виде строк, сравнение идет слева направо (если вы не используете такой язык, как арабский), поэтому формат строки не будет работать. Вам также потребуется заполнение нулями в соответствующих местах.

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