2014-04-16 3 views
0

오류 :에코 DATETIME 던졌습니다 (500) 나는 다음과 같은 코드를 실행 해요

결과 세트가 문제없이 수집
<?php 

include "php/connection.php"; 

$data = $_GET['data']; 

$tsql = "SELECT * FROM Customer WHERE CustomerNumber = ".$data; 
$result = sqlsrv_query($link, $tsql); 

$row = sqlsrv_fetch_array($result); 

echo $row['endDate']->format("Y-m-d H:i:s"); 

?> 

, 문제는이 500을 던져 같은 문자열로 OUPUT 노력과입니다 오류, 그게 개체로 반환되고 있기 때문에 내가 무슨 일이 있어도 나는 문자열로 데이터를 얻을 수 없다고 생각됩니다.

여기서 EndDate 열이 형식의 데이터를 보유하고있다 : 22 :

2015년 4월 16일 08 00.000

열은 '날짜'형식이다.

편집 :

코드 현재 코드를 반영하도록 변경

, 에코는 이제 '1900-01-01 0시 0분 0초'표시하지만 표시되어야하는 실제 데이터는 '08 2015년 4월 16일이다 : 22 : 00.000 '

+0

무엇을 위해서 var_dump ($ 행)을 표시 하는가? –

+0

당신은 데이터의 print_r을하려고 할 수 있습니다. 그리고 여러분은 뭔가를 echo하지 않고 시도 할 수 있습니다 ... 만약 당신이 500 에러를 가지고 있다면, 객체를 echo하는 또 다른 문제가 있습니다 ... – Mathlight

+0

[endDate ] => 날짜 시간 개체 ( [일] => 1900-01-01 0시 0분 0초 [timezone_type] => 3 [시간대] => 유럽/더블린 )에서 true로 –

답변

0

날짜가 DateTime 개체로 저장되어 표시되지 않습니다.

여기에 예를 들어

datetest = new DateTime(); 
$row = array(); 
$row["endDate"] = $datetest; 
print_r($datetest); 
echo "End Date :: ".$row["endDate"]->format("Y-m-d H:i:s"); 

귀하의 경우 동일

DateTime Object ([date] => 2014-04-16 15:04:41 [timezone_type] => 3 [timezone] => Asia/Calcutta) 

으로 뭔가를 인쇄 할 것이다 print_r() 문입니다. 귀하의 경우 그래서

여기, 내 연결 옵션을 true로 ReturnDatesAsStrings을 설정하여

echo $row['endDate']->format("Y-m-d H:i:s"); 
+0

감사합니다. 응답이 변경되었지만 데이터가 다시 표시됩니다. 1900-01-01 00:00 : 00 반면 실제 데이터는 2015-04-16 08 : 22 : 00.000 –

+0

물론 변수 덤프는 1900-01-01 00:00:00을 보여줍니다. 결과 세트가 코드에서 생성되는 동안 어딘가에있을 수 있습니다. –

0

문제 해결 예입니다 :

<?php 
$serverName = "MyServer"; 
$connectionInfo = array("Database"=>"AdventureWorks", 'ReturnDatesAsStrings '=> true); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 
if($conn === false) 
{ 
    echo "Could not connect.\n"; 
    die(print_r(sqlsrv_errors(), true)); 
} 

sqlsrv_close($conn); 
?> 
관련 문제