我想将以下日期与不同年份和保存状态进行比较:
@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
它在同一年内都可以正常工作,但是在不同年份里,它都无法正常工作。请帮我解决这个问题。
答案 0 :(得分:1)
如果要将日期作为日期而不是您编写的特定字符串格式进行比较,则将它们作为日期进行比较:
@date = Date.today
@valid_to_date = @new_certificate.valid_to.to_date
即使您选择将日期作为字符串进行比较,比较也会从左到右进行(除非您使用阿拉伯语这样的语言),因此字符串格式显然将不起作用。您还需要在适当的位置填充零。