Операторы сравнения для дат в PHP, извлеченных из SQL, не работают

Я создал Если еще заявление но это не работает должным образом.
У меня есть несколько дат в моем SQL которые были получены и сохранены в переменных с помощью PHP.

Я сравниваю текущую дату с датами из базы данных, но по какой-то причине он считает, например, что 29-09-2015, если МЕНЬШЕ, ЧЕМ 31-01-2015.

Я могу понять, что формат мог быть проблемой d, m, Y, но я думал, что уже исправил это.
Вот код:

$today = date('d-m-Y');
$date = $row['respondby'];
$euDate= date("d-m-Y", strtotime($date));

<?php


if($today < $euDate){                                                           echo "<td>". $today." is less than ". $euDate ."</td>";
}
else{
echo"<td>Lost somewhere in between ?!?!?! :S </td>";
}
?>

В результате он печатает
29-09-2015 меньше, чем 30-06-2015

сегодняшняя дата была 29-09-2015, и одна из дат была в данных, как показано ниже.

Спасибо всем, кто помогает.

-3

Решение

Сравнение дат в виде строк использует лексикографический порядок, поэтому ваш результат «правильный».

Вместо d-m-Y формат, попробуйте использовать Y-m-d, это гарантирует правильный порядок.

$today = date('Y-m-d');
$date = $row['respondby'];
$euDate= date("Y-m-d", strtotime($date));
if($today < $euDate) { [...] }

Или вы можете использовать Date объекты вместо:

$today = new Date('now');
$euDate= new Date($row['respondby']);
if($today < $euDate) { [...] }
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]