2012-12-13 5 views
1

DateTime 객체를 출력하려고하면 말 그대로 형식이 인쇄됩니다. 그렇지 않은 이유가 작동합니다 다른 질문 및 예제를 읽는에서PHP가 DateTime 객체를 반향합니다.

Y-m-d H:i:s 

코드

$db = new PDO('mysql:host=localhost;dbname=xxx;charset=utf8', 'xxx', 'xxx'); 
$dbTime = new DateTime(current($db->query('SELECT NOW()')->fetchAll(PDO::FETCH_COLUMN, 0))); 
$myTime = new DateTime(); 
$diff = $myTime->diff($dbTime); 
echo $diff->format('Y-m-d H:i:s'); 

은 그래서 혼란 스러워요.

+0

'DateInterval :: diff'는 문자가 작동하기 전에'%'s를 요구하지만, 이것은 아마도 여러분이 원하는대로하지 않을 것입니다 ... – Wrikken

답변

5

DateTime::diff 메서드는 DateInterval 개체를 반환합니다. DateTime 개체의 구현과 다른 DateInterval 개체에서 형식을 호출하므로 예기치 않은 결과가 발생합니다. 그것을 사용하는 방법에 대한 자세한 내용은 http://php.net/manual/en/dateinterval.format.php을 참조하십시오.

+0

감사합니다. 지금 작동 중입니다. – martincarlin87

3

DateTime::diff()의 결과물은 DateInterval 개체이며, formatting 의미가 있습니다. 특히 오버플로에 대해 읽었습니다. 형식 기호를 강제하기 위해 % 기호를 사용하십시오. 그렇지 않으면 문자열 문자로 취급됩니다.

+0

감사합니다. 지금 받으십시오. – martincarlin87

관련 문제