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区全部ありますね。。チ。
