2012-11-14 6 views
1

그래서 내 PHP 스크립트 (mysql 데이터베이스에서 시간과 현재 시간())를 비교하지만 작동하지 않습니다. 어떻게해야합니까? PHPmysql 저장된 시간과 현재 시간을 비교하는 방법이 있나요

if($row['Datum'] < date(Y-m-d-H-i-s)) { Code to execute} 

MySQL의 DATETIME은

2012-11-13 17:00:00 
+0

잠하세요 ide 당신이 사용하고있는 실제 코드. –

+1

대신 SQL 쿼리에서 비교할 수 있습니까? 그것은 더 빠를 것이다. –

답변

1

현재 코드는 구문 오류가 있지만 일하는 것이 뭔가를 아주 가까이 :

$now = date('Y-m-d H:i:s'); 

// loop here 
foreach ($rows as $row) { 
    if ($row['Datum'] < $now) { 
     // code to execute 
    } 
} 
: 당신이 date()의 출력을 캐시해야하므로

if ($row['Datum'] < date('Y-m-d H:i:s')) { 
    // Code to execute 
} 

이, 루프 내부 될 가능성이 높습니다

또한 쿼리에서 직접 비교를 할 수있는 :

$now = date('Y-m-d H:i:s'); 
$db->query("SELECT * FROM whatever WHERE Datum < '$now'"); 
0

MySQL의 날짜 형식은 먼저

$date = new DateTime(); 
$date = $date->format('Y-m-d H:i:s'); 

if ($row['Datum'] < $date) { Code to execute } 
0

당신이 당신의 PHP 호출에 잘못된 날짜의 형식을 가지고있다, MySQL의 날짜가에 형식은 "Y-m-d H:i:s"입니다. 둘째로, 당신은 이것을 할 필요가 없습니다. 대신 다음을 사용할 수 있습니다 :

if(strtotime($row['Datum']) < time()) { // Code to execute } 

이렇게하면 mysql 날짜가 타임 스탬프로 변환되고 현재 타임 스탬프와 비교됩니다.

0

SQL 쿼리에 추가 할 수 있습니까? "YYYY-MM-DD HH : II : SS"당신의 날짜는 ISO 8601 형식과 일치하는 경우

SELECT * FROM tablename WHERE Datum < now(); 
+0

서버가 다른 시간대에있는 경우 문제가 발생합니다. – Chris

0

, 당신은 유닉스 타임 스탬프로 문자열을 변환 할 한 strtotime 기능을 사용할 수 있습니다.

관련 문제