2013-02-14 3 views
-2

PHP 5.3에서 아래 코드를 사용하지만 지금은 5.4.11에서 실행해야하며 작동하지 않습니다. 페이지에 오류가 없으며 500 오류가 있습니다. 내가 마지막 3 줄을 주석하면 모든 것이 정상입니다.PHP 5.4.11의 DateTime 관련 문제

$sql = "*****"; 
$query = mysqli_query($dbc, $sql) or die('Error selecting date range.'); 
$row = mysqli_fetch_array($query); 
$firstDate = $row['min']; 
$lastDate = $row['max']; 
$arrDates = array(); 
$date1 = new DateTime($firstDate); 
$date2 = new DateTime($lastDate); 
$interval = $date1->diff($date2); 

EDIT1 : 모든 것을 내가 객체의 주석 순간을 중지으로 불가능 $ firstDate 및 $ lastDate에 대한 위해서 var_dump는 $ 날짜 1과 $ DATE2 하나를 얻을 수 있습니다.

$firstDate - string(10) "2013-01-27" 
$lastDate - string(10) "2013-02-06" 

의견이 있으십니까?

+1

확인 로그를. – Leri

+1

실마리? 아마도 $ firstDate와 $ lastDate에 반환 된 값의 var_dump()일까요? –

+0

'$ firstDate'와'$ lastDate? '의 내용을 출력 해 주실 수 있습니까? – Naryl

답변

1

나는 당신이 사전에 입력 문자열의 형식을 알고있는 경우 날짜 시간 객체를 생성하는 정적 createFromFormat 방법을 사용하는 것이 더 신뢰할 수 있다는 과거에 발견 : 서버에서

$date1 = DateTime::createFromFormat($format, $firstDate); 
$date2 = DateTime::createFromFormat($format, $lastDate); 
$interval = $date1->diff($date2); 
+0

완벽하지만 다른 코드가 작동하지 않는 이유는 무엇입니까? 어떤 아이디어? – Boris

+1

아니요. 처음에는 우분투에서 완벽하게 작동하지만 Mac에서는 동일한 PHP 버전으로 넘어간 코드로 처음으로 경험했습니다. 나는 아직도 그것을 설명 할 수 없다 :( – shanethehat