使用PDO的php / mysql DateTime格式

时间:2014-09-04 09:17:21

标签: php json date

通过php从mysql获取日期值我遇到了问题。在我添加日期之后,没有任何东西返回。代码的错误是什么?

列数据类型是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 个答案:

答案 0 :(得分:1)

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

您正在对PHP数据类型date进行类型转换..... PHP中没有这样的数据类型

如果您尝试格式化日期,请使用PHP的标准日期格式设置功能和方法

修改

例如

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']); 

}