Не знам дали осъзнаваш, че с кода $date < 01.09 не сравняваш дати, а стринг или дроб. С днешна дата сравнението изглежда така: 09.01 < 01.09 и съответно резултата е false, а логиката ти изисква true. Когато сравняваш дати и доста по-лесно да работиш с UNIX Timestamp и работещият ти код би изглеждал така: