У меня есть база данных MySQL со списком дат. Я хочу вывести все эти даты, если они появятся после сегодняшнего дня, на страницу. Даты хранятся в базе данных в формате DATE, как Y-m-d
.Почему это сравнение версий PHP не так, как я ожидаю?
У меня есть следующий код (за исключением запросов и т.д.):
$dateToday = date('Y-m-d');
do{
$dateCompare = new DateTime($row['date']);
if ($dateCompare > $dateToday){
echo '<p>'.$dateCompare -> format('Y-m-d').'</p>';
} else {
echo '<p>FALSE</p>';
}
}while ($row = $stmt->fetch(PDO::FETCH_ASSOC));
Но это просто выводит все даты, включая один я задал в прошлом для целей тестирования. Что я делаю не так?
Самая очевидная вещь, которую вы делаете неправильно фильтрует набора данных из СУБД на уровне приложений. Это должно быть сделано на уровне СУБД. Следующее, что вы делаете неправильно, - это предположение о формате и типе данных - покажите нам, какие значения сравниваются. – symcbean
Я понятия не имею, что вы подразумеваете под двумя двумя предложениями ... – ElendilTheTall