Проверьте, проходит ли данная дата

У меня есть недельный календарь, который проводит мероприятия, и хотят это, пользователи не могут добавить события в течение прошедших дней. Таким образом, я - Тринг для использования функции как этот:

if( strtotime($this->day) < time() ){ // date format is YYYY-MM-DD
// date is past 
}else{   
// date is not past
}

Это кажется, хорошо работает, за исключением того, что это рассматривает сегодня дату как прошедший день. Что я делаю неправильно?

10
задан Luciano 21 July 2010 в 09:09
поделиться

3 ответа

Отметка времени никогда не содержит только дату, но всегда до текущей секунды. strtotime ($ this-> day) вернет сегодняшнюю дату в 0:00 , в то время как вы сравниваете ее с текущей, скажем, 11:12 .

Вы можете использовать strtotime ("$ this-> day 12:59:59 pm"); (если формат $ this-> day позволяет это) или использовать завтрашняя отметка времени .

10
ответ дан 3 December 2019 в 18:30
поделиться

Упрощенно ->

if(strtotime($this->day) < strtotime(date('Y-m-d')))
{
   ...
}
else
{
   ...
}
11
ответ дан 3 December 2019 в 18:30
поделиться
if(strtotime($this->day) < mktime(0, 0, 0)){
    // date is past
} else {
    // date is not past
}
0
ответ дан 3 December 2019 в 18:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: