2017-08-02 119 views
0

我試圖在過去的24小時內從accuweather API迴應某個位置的解碼的json數據。輸出會是這樣的「,在‘城市’昨天的天氣 日期:時間 - 溫度 日期:時間 - 溫度 日期:hour24 - temp24ECHO歷史ACCUWEATHER數據JSON

這是一個數據。 JSON format

這是我的代碼使用var轉儲和嘗試呼應它在一個更加複雜和整潔的方式,提前

$json = file_get_contents('http://dataservice.accuweather.com/currentconditions/v1/328328/historical/24?apikey=GKu1AhOuGN0aAnNEMyiWgKD5fAmo4dpN'); 

//decode JSON to array 
$data = json_decode($json,true); 

//show data 
print_r($data); 

foreach ($data['list'] as $hour => $value) { 
    echo "The temperature for the hour ". $hours ." was ". $value[Temperature]."<br/>"; 
    # code... 
} 

感謝。

+0

對不起。我不明白。您的文本顯示「溫度將是...」,但數據顯示的是歷史數據。你想做什麼?您是否嘗試輸出每個歷史項目的時間戳和溫度? – Andreas

+0

這是我的語法錯誤,溫度是*我想輸出每小時的時間戳和當時的最後24小時的溫度 – R1ddler

+0

明白了!將在下面發佈答案。 – Andreas

回答

0

該代碼將遍歷每個時間戳並輸出溫度的時間戳和度量值。
不確定你想要什麼,但如果它不正確,這是一個簡單的改變。

<?php 
$json = file_get_contents('http://dataservice.accuweather.com/currentconditions/v1/328328/historical/24?apikey=GKu1AhOuGN0aAnNEMyiWgKD5fAmo4dpN'); 

//decode JSON to array 
$data = json_decode($json,true); 

//show data 
echo "<pre>"; 
// print_r($data); 
echo "</pre>"; 
foreach ($data as $value) { 
    echo "The temperature for the hour ". $value["LocalObservationDateTime"] ." will be ". $value["Temperature"]["Metric"]["Value"]."<br/>"; 
                             // or "Imperial" 
    # code... 
} 

編輯顯示日期()函數。

foreach ($data as $value) { 
    echo "The temperature for the hour ". date("Y-m-d H:i", $value["EpochTime"]) ." will be ". $value["Temperature"]["Metric"]["Value"]."<br/>"; 
    # code... 
} 

我用了「H」小時。這將顯示格式09:55,如果你想9:55使用「G」。
http://php.net/manual/en/function.date.php

+0

謝謝,這就像一個魅力。現在我看到我的代碼中出現了錯誤。我對JSON數據沒有多少經驗,是否有辦法將LocalObservationDateTime剪切爲只輸出日期和時間。從這個2017-08-02T11:55:00 + 02:00到這樣的事情2017-08-02 11:55:00。 – R1ddler

+0

@ R1ddler是的。但我寧願使用另一個項目。 'EpochTime'是UNIX觀察的時間。如果你在php設置日期()中有你的時區,那麼你應該給你一個好的時間戳。將更新我的答案給你看。 – Andreas