通过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;
?>
答案 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']);
}