2014-09-04 101 views
0

我通過php從mysql獲取日期值時遇到了問題。我添加日期後,沒有任何事情返回。代碼的錯誤是什麼?php/mysql使用PDO的DateTime格式

列數據類型是mysql中的DateTime。

輸出爲Json後,我在線上使用了Json格式化程序,它表示它不是有效的Json。爲什麼?

try { 
    $conn = new PDO("mysql:host=host;dbname=db", "username", "pwd!"); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $Ticker = htmlspecialchars($_GET["Ticker"]); 
    $Today = date('Ymd'); 

    $result = $conn->prepare("SELECT Ticker, date(dateOfRelease) as 'Release date', Amount FROM TradeQuote WHERE Ticker='$Ticker' GROUP BY Date(dateOfRelease)"); 

    $result = $result->fetchAll(); 
    $temp = array(); 

    foreach($result as $r) { 

      $temp[] = array('Ticker' => (string) $r['Ticker'], 'Release Date' => (date) $r['Release date'], 'Price' => (string) $r['Price'], 'Amount' => (string) $r['Amount']); 

     } 
    $table = $temp; 
    $jsonTable = json_encode($table); 
    } catch(PDOException $e) { 
     echo 'ERROR: ' . $e->getMessage(); 
    } 
    echo $jsonTable; 

?> 

回答

1
'Release Date' => (date) $r['Release date'], 

你的類型轉換到date一個PHP數據類型.....存在PHP

沒有這樣的數據類型

如果你想格式化日期,然後使用PHP的標準日期格式化函數和方法

EDIT

示例

foreach($result as $r) { 
    $releaseDate = new DateTime((string) $r['Release date']); 
    $temp[] = array('Ticker' => (string) $r['Ticker'], 'Release Date' => $releaseDate->format('Y-m-d'), 'Price' => (string) $r['Price'], 'Amount' => (string) $r['Amount']); 

} 
+0

請問您能舉出一個具體的例子,或者我可以參考的鏈接也不錯,對您而言可能很簡單,但對我來說可能很簡單。謝謝。 – Trader 2014-09-04 09:27:24