Возможный дубликат:
php date compare
У меня есть дата, которую я беру из базы данных mySQL, которая выглядит так:
2011-06-20 
И я получаю дату текущего дня следующим образом:
 $todaydate = date('Ym-d'); 
Мне нужно знать, как сравнить два результата?
Как я могу сравнить даты и понять, например, если неделя передается из даты базы данных или месяца или года … и т. Д.?
Спасибо!!
  Нет необходимости ставить эту нагрузку на PHP, когда MySQL имеет встроенные функции для этого уже.  Вы должны взглянуть на DATEDIFF() MySQL: 
DATEDIFF()возвращаетexpr1–expr2выраженное как значение в днях от одной даты к другой.expr1иexpr2– этоexpr1даты или даты и времени. В расчетах используются только части даты.
Примером двух дат, которые дают 7-дневную разницу, может быть:
 mysql> select datediff('2011-06-18','2011-06-25'); +-------------------------------------+ | datediff('2011-06-18','2011-06-25') | +-------------------------------------+ | -7 | +-------------------------------------+ 
Это означает, что первая дата произошла через 7 дней после первой даты; это за 7 дней до этого . Если вы разрешите использовать два аргумента, результат будет положительным. 7.
Как насчет использования UNIX_TIMESTAMP? Он использует концепцию прошедшего времени.
«Старый» способ сравнить две или более даты – это преобразовать в временную метку unix (секунды в float) с помощью функции strtotime (). Например:
 if((strtotime('2011-05-10') - strtotime('2011-05-01')) > 604800) { echo('A week has passed'); } if((strtotime('2011-06-10') - strtotime('2011-05-01')) > 2629743) { echo('A month has passed'); } 
Или «новым» способом является использование класса DateTime в комплекте с PHP 5.2 или новее. Посмотрите http://php.net/manual/en/book.datetime.php .
И, конечно, date_diff имеет множество примеров.
Вам нужно рассмотреть то, что вы точно ищете.
Вы хотите отфильтровать даты старше недели? Вы можете сделать это сравнение на SQL, и вы не нагружаете PHP сопоставлением дат.
Вы хотите разницу в дате? Опять же, я предлагаю поместить его в SQL и просто показать результат.
Это даст вам количество секунд между двумя датами:
 <?php $time = '2011-06-20'; $timeDiff = time() - strtotime($time); echo $timeDiff; ?> 
Вы можете разделить это значение на 86 400, чтобы получить количество дней и т. Д.