PHP сравнивает две даты

У меня две даты в формате YYYY-MM-DD, и я хочу их сравнить, они выполняют определенную задачу.

Я пробовал этот фрагмент кода:

$temp_date = strtotime($cu['date']); $temp_upto = strtotime($upto_date); if($temp_date <= $temp_upto){ echo "<tr id='highlight'>"; }else{ echo "<tr>"; } 

$cu – это массив и содержит дату в том же формате. Это правильный способ сравнить даты в php? Результат, который я получаю, довольно странный! Я не разместил полный код, потому что он слишком длинный и нерелевантный для этого вопроса. Благодаря!.

ОБНОВЛЕНИЕ: Так вот что я пытаюсь сделать. У меня много нормальных дат, и у меня есть upto date, если нормальные даты меньше или равны до даты, тогда я хочу добавить id = "highlight". Все это внутри цикла для какой-либо другой цели моего кода.

Я повторил следующие даты:

  echo "DATE: " . $temp_date + " UPTO: " . $upto_date; 

и выход был чем-то вроде

 DATE: 1349042400 UPTO: 00-00-0000 DATE: 1349388000 UPTO: 00-00-0000 DATE: 1352588400 UPTO: 00-00-0000 DATE: 1352761200 UPTO: 00-00-0000 DATE: 1353193200 UPTO: 00-00-0000 DATE: 1353366000 UPTO: 1353193200 DATE: 1354143600 UPTO: 1353193200 DATE: 1354662000 UPTO: 1353193200 

все же сравнение не происходит. и я не вижу никаких изменений!

Люди, которые предлагают предложения, уже отвечали на вопросы, я уже много читал и реализовал большинство из них.

ОБНОВЛЕНИЕ 2: Пока я все еще пытаюсь выяснить мою проблему. Я хочу поделиться расширенным фрагментом кода здесь http://pastebin.com/nsVGV9dg

Нет, это неправильно. Вы сравниваете две строки даты. Вместо этого вы хотите сравнить временные метки:

 $temp_dateTS = strtotime($cu['date']); $temp_uptoTS = strtotime($upto_date); if ($temp_dateTS <= $temp_uptoTS) { # code... } 

Это также возможно (и лучше), если вы используете класс DateTime :

 $temp_date = new DateTime($cu['date']); $temp_upto = new DateTime($upto_date); if ($temp_date <= $temp_upto) { # code... } 

Я не отвечаю непосредственно на ваш вопрос, но я думаю, что это лучше для пользователя php DateTime .

 $datetime1 = new DateTime('2009-10-11'); $datetime2 = new DateTime('2009-10-13'); $interval = $datetime1->diff($datetime2);