2017-07-19 97 views
0

我有一個具有JSON響應的PHP API。它的工作正常。有一個我正在用JSON調用的字段,查詢名爲qu_time。目前它是從該字段返回的日期時間。我希望將時間轉換爲前一個函數,並希望將其包含在JSON響應中。我已經嘗試了很多可行的方法,但我不是成功的,因爲我不是PHP開發人員。我目前的API代碼如下所示:在json響應中包含函數值

<?php 

include 'dbconnection.php'; 

$limit = $_GET['limit']; 
$offset = $_GET['offset']; 
$orde = $_GET['order']; 

mysqli_query($conn,"SET NAMES utf8"); 
$sql = "SELECT q.*,c.au_picture as picture FROM tbl_quotes q INNER JOIN tbl_category c ON q.qu_author=c._auid Order By q.".$orde." Desc LIMIT ".$limit." OFFSET ".$offset; 
$result = mysqli_query($conn, $sql); 

$arr = array(); 
while($r = mysqli_fetch_assoc($result)) { 
    $arr[] = $r; 
} 

echo json_encode($arr, JSON_UNESCAPED_UNICODE); 

mysqli_close($conn); 

?> 

和我很久以前的功能是類似下面

function ago($datetime) 
{ 
    $interval = date_create('now')->diff($datetime); 
    $suffix = ($interval->invert ? '' : ''); 
    if ($v = $interval->y >= 1) return pluralize($interval->y, 'year') . $suffix; 
    if ($v = $interval->m >= 1) return pluralize($interval->m, 'month') . $suffix; 
    if ($v = $interval->d >= 1) return pluralize($interval->d, 'day') . $suffix; 
    if ($v = $interval->h >= 1) return pluralize($interval->h, 'hr') . $suffix; 
    if ($v = $interval->i >= 1) return pluralize($interval->i, 'min') . $suffix; 
    return pluralize($interval->s, 'second') . $suffix; 
} 

任何人都可以請建議我我如何在JSON加上前段時間函數值響應?

+0

如果您在循環中添加第一行'$ r [「qu_time」] = ago($ r [「qu_time」]);'...是否會得到您想要的結果? – trincot

+0

@它造成一些錯誤....不工作 – Alia

+0

哪個錯誤?你有沒有包含函數定義?字段名稱是否正確? – trincot

回答

0

您可以添加以下行的循環,它會做的函數調用,並把結果存儲回到同一陣列的位置:

while($r = mysqli_fetch_assoc($result)) { 
    $r["qu_time"] = ago($r["qu_time"]); // <---- call function, and store result 
    $arr[] = $r; 
} 

然後轉化成JSON可以僅僅停留,因爲它是。