Вы не сравниваете даты. Вместо этого вы проверяете, можете ли вы успешно преобразовать дату, указанную в качестве второго параметра, в strtotime()
в действительную дату. Этот результат всегда верен, потому что у каждой даты есть действительная дата через 20 дней.
Другими словами, если date()
возвращает истинное значение, ваше условие ИСТИНА. Он всегда будет возвращать истинное значение, если вы не передадите ему недопустимую временную метку во втором параметре (например, 42 февраля)
Если вы хотите сравнить вывод этого вызова date()
с другой строкой даты, вам понадобится дополнительный операнд внутри вашего if()
:
if ('2011-09-02' == date('Y-m-d', strtotime("+20 days", $date_string))) {
}