날짜 목록이있는 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));
을하지만 이것은 단지 가 하나 내가 테스트 목적으로 과거에 설정을 포함한 모든 날짜를 출력한다. 내가 도대체 뭘 잘못하고있는 겁니까?
당신이 잘못하고있는 가장 눈에 띄는 점은 애플리케이션 계층에서 당신의 DBMS에서 데이터 집합을 필터링한다. 이 작업은 DBMS 계층에서 수행해야합니다. 다음으로 잘못하고있는 것은 데이터의 형식과 유형에 대한 가정을 만드는 것입니다. 비교 대상 값이 무엇인지 보여줍니다. – symcbean
처음 두 문장의 의미가 무엇인지 모르겠다. – ElendilTheTall