У меня есть две даты в формате YYYY-MM-DD, и я хочу их сравнить, они выполняют определенную задачу.PHP сравнение двух дат
Я попробовал этот кусок кода:
$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
Если вы сравните значения strtotime напрямую, это сработает. это простые целые числа, а '>'/'<'/'=' сравнения типов работают, как ожидалось. Вы конвертируете в строки, в порядке наименее значимого значения, поэтому ваши сравнения - это мусор. –
Возможный дубликат [PHP - Compare Date] (http://stackoverflow.com/questions/2113940/php-compare-date) И все эти http://stackoverflow.com/search?q=+is%3Aquestion+%5Bphp % 5D + сравнить + даты –