修改数组中指定键的每个值

时间:2014-10-10 13:55:15

标签: php mysql arrays pdo

我有一个包含多行和多列的数据库,这些数据库都是用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']);

2 个答案:

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