我有以下mysql查询功能:
$query_number = 2;
$query = "SELECT * FROM $table ORDER by date desc limit $query_number";
$results = mysql_query($query);
$message['posts'] = $results;
echo json_encode($message);
exit;
我得到一个包含多个键的对象数组:
Array
(
[0] => stdClass Object
(
[ID] => 4983
[post_id] => 56357
[date] => 2016-06-04 23:45:28
)
[1] => stdClass Object
(
[ID] => 4982
[post_id] => 56241
[date] => 2016-06-04 22:58:27
)
)
我通过ajax将整个数组发送到js。
但是,我想将日期格式更改为"之前"并将其发送给js。
我有"前"函数,但我不确定如何定位date
值并将其放回原来的位置(替换)。
任何帮助都会非常感激!
谢谢!
答案 0 :(得分:2)
您需要遍历结果并调用ago
函数:
<?php
$query_number = 2;
$query = "SELECT * FROM $table ORDER by date desc limit $query_number";
$results = mysql_query($query);
// Loop through results
foreach($results as $key => $row) {
// Replace date value with ago value
$results[$key]['date'] = ago($row['date']);
}
$message['posts'] = $results;
echo json_encode($message);
exit;
我没有测试过,但你有这个想法。
答案 1 :(得分:1)
要替换值,您可以使用foreach
并在同一地址更改变量
foreach($results as &$row) {
// Replace date value with ago value
$row['date'] = ago($row['date']);
}
$message['posts'] = $results;
echo json_encode($message);
如果您不想使用foreach
,则可以使用array_walk
函数代替foreach
:
array_walk($results, function(&$row){
$row['date'] = ago($row['date']);
});