У меня есть недельный календарь, который содержит события, и хочу, чтобы пользователи не могли добавлять события за последние дни. Поэтому я пытаюсь использовать такую функцию:
if( strtotime($this->day) < time() ){ // date format is YYYY-MM-DD // date is past }else{ // date is not past }
Кажется, что он работает отлично, за исключением того, что сегодня он рассматривает дату как прошлый день. Что я делаю не так?
Временная метка никогда не содержит только дату, но всегда остается текущей. strtotime($this->day)
вернет сегодняшнюю дату в 0:00
, пока вы сравниваете ее сейчас, скажем, 11:12
.
Вы можете использовать strtotime("$this->day 12:59:59pm");
(если для этого разрешен формат $this->day
) или использовать метку времени завтра .
Проще ->
if(strtotime($this->day) < strtotime(date('Ym-d'))) { ... } else { ... }
if(strtotime($this->day) < mktime(0, 0, 0)){ // date is past } else { // date is not past }