我有一个包含多行和多列的数据库,这些数据库都是用PDO抓取的。
$sql = "SELECT timestamp FROM table";
$stmt = $dbh->prepare($sql);
$results = $stmt->execute;
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
其中一个数据库列是timestamp
,它是一个10位的unix时间戳。我希望在将此服务器端发送到浏览器之前将其转换为可读格式。
这就是我希望它被格式化的方式,但我知道它需要在每一行都完成,这就是它让我感到惊讶的地方。可能是一个foreach循环?
$results['timestamp'] = date('H:i\, l jS \of F Y', $results['timestamp']);
答案 0 :(得分:3)
直接在DB中执行此操作要简单得多,因为DB已经是"循环"在完全相同的数据上,节省您必须在客户端代码中重新循环:
SELECT DATE_FORMAT(timestamp, '%H:%i, etc...') FROM table
格式代码记录在此处:http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format
答案 1 :(得分:0)
弄明白:)
array_walk($results, function(&$value) {
$value['timestamp'] = date('H:i\, l jS \of F Y', $value['timestamp']);
}