2016-07-27 62 views
0

我已經以JSON的形式成功從twitter API獲取數據。但是Twitter提供的時間仍然不是我需要的日期格式,所以我認爲我必須先編輯它。問題是我不知道如何用PHP編輯JSON文件。如何從twitter json編輯created_at API

Here is what twitter API will give in the form of json

現在,如果我想編輯的「created_at」,我該怎麼辦呢?到目前爲止,這是我得到的。

$results = search($query); 
 

 
header('Content-Type: application/json'); 
 
$results= json_encode($results, JSON_PRETTY_PRINT); 
 
echo $results; 
 
file_put_contents('json_result.json', $results); 
 

 
$contents = file_get_contents('json_result.json'); 
 
$contentsDecoded = json_decode($contents, true); 
 
echo $contentsDecoded['statuses']->created_at; 
 
foreach ($contentsDecoded['statuses'] as $tweet) { 
 
\t $date = new DateTime($tweet->created_at); 
 
    \t $formatted_date = $date->format("d-m-Y"); 
 
    \t echo "Date ".$formatted_date; 
 
}

我仍然得到錯誤說這是不對象的屬性...

+1

爲什麼要編輯它,而不是僅僅更改輸出格式? – Perry

+0

@Vuldo說的是什麼 –

+0

正如@Perry所說的,當你必須在屏幕上顯示時才解析它。這是一個ISO標記,你不會因爲這樣保持它而得到麻煩。如果您需要多次顯示,請爲此創建一個函數。 – KeitIG

回答

0

編輯它把它在文件中,而不是把它再次得到它之前,再次節省。

+0

是啊,但如何?我發佈的代碼不起作用,它表示有試圖獲取非對象的屬性 –

+0

'$ results'是一個數組?你可以在編碼之前編輯這個數組 – Vuldo

+0

我不明白,你能擴展它嗎? –

0

我認爲問題出在這些行之一:

echo $contentsDecoded['statuses']->created_at; 
foreach ($contentsDecoded['statuses'] as $tweet) { 

無論$ contentsDecoded [「狀態」]擁有財產created_at或者是一個數組 所以訪問數組的財產created_at無效。嘗試刪除該行