strtotimeを使ってUNIXタイムスタンプに変換して比較します。
$now = date("Y-m-d H:i:s"); if(strtotime($now) > strtotime($list[10]["dt_txt"])){ echo "過去の天気です。"; }else if(strtotime($now) <= strtotime($list[10]["dt_txt"])){ echo "未来の天気です。"; } else{ echo "比較に失敗しました。"; }
今より、未来の天気予報を表示する
$now = date("Y-m-d H:i:s"); echo "<table class=\"table1\">"; echo "<tr>"; $i = 1; foreach($list as $value){ if(strtotime($now) <= strtotime($value["dt_txt"])){ echo "<td>"; $date = $value["dt_txt"]; echo date('n月j日 H時', strtotime($date)). "<br>"; echo convert($value["weather"][0]["main"]) . "<br>"; echo "<span style=\"color:gray;\">".convert2($value["weather"][0]["description"]) . "</span><br>"; $temp = $value["main"]["temp"]; echo "気温 : " . number_format(($temp - 273.15),1) . "°<br>"; echo "湿度 : " . $value["main"]["humidity"] . "%<br>"; echo "雲 : " . $value["clouds"]["all"] . "%<br>"; echo "風速 : " . $value["wind"]["speed"] . "m<br><br>"; echo "</td>"; if($i % 8 == 0){ echo "</tr><tr>"; } $i++; } } echo "</tr>"; echo "</table>";
なるほど、なかなかいいんじゃないでしょうか?
Yahoo天気
23区全部ありますね。。チ。