Intereting Posts

PHP Проверьте, прошла ли дата до определенной даты, заданной в определенном формате

У меня есть календарь календаря php, который запрашивает базу данных для получения дат.

Я показываю дату события, используя:

$event['date'] 

и этот дисплей в этом формате:

Например, 2013-07-31 .

Теперь мне нужно проверить, соответствует ли эта дата предыдущей дате текущей дате.

Как я могу это сделать?

Solutions Collecting From Web of "PHP Проверьте, прошла ли дата до определенной даты, заданной в определенном формате"

Вы можете сравнить даты с классом DateTime PHP:

 $date = new DateTime($event['date']); $now = new DateTime(); if($date < $now) { echo 'date is in the past'; } 

Смотрите это вживую!


Примечание. Использование класса DateTime предпочтительнее, чем strtotime() поскольку последний будет работать только для дат до 2038 года. Подробнее о проблеме Year_2038_ .

Вы можете использовать strtotime() и time() :

 if (strtotime($event['date']) < time()) { // past date } 
 if (time() > strtotime($event['date'])) { // current date is greater than 2013-07-31 } 

strtotime анализирует дату, используя эти правила .

@ Satch3000 Вы приняли неправильный ответ как правильное решение (@Amal Murali)

См. Вывод. Здесь я ввожу сегодняшнюю дату, но она возвращает текущую дату как прошлую дату.

 <?php /* Enter today date */ $date = new DateTime("09/14/2017"); $now = new DateTime(); print_r($date); print_r($now); if($date < $now) { echo 'date is in the past'; } 

Выход будет

 DateTime Object ( [date] => 2017-09-14 00:00:00.000000 [timezone_type] => 3 [timezone] => UTC ) DateTime Object ( [date] => 2017-09-14 07:12:52.000000 [timezone_type] => 3 [timezone] => UTC ) date is in the past 

Решение

 $Date1 = strtotime(date('Ym-d', strtotime('2017-09-15') ) ).' '; $Date2 = strtotime(date('Ym-d')); if($Date1 < $Date2) { echo 'date is in the past'; }