このドキュメントが更新された日付を取得するためにこのクエストを開始しましたが、この件に関する知識が限られているため、いくつかの障害にぶつかりました。
- 私が望んでいた実際のタイムスタンプに到達する方法。
上記の XML ファイルの抜粋は次のようになります。
<data type="current observations">
<time-layout time-coordinate="local">
<start-valid-time period-name="current">2013-05-27T13:53:00-04:00</start-valid-time>
</time-layout>
</data>
次のことを試みましたが、無効な式の警告が表示されました。
$weather = simplexml_load_file('http://...');
$time=$weather->xpath('//data[@type="current observations"]/"time-layout"/"start-valid- time"');
echo $time[0];
次を取得することを期待: 2013-05-27T13:53:00-04:00
次に、これに基づいてデフォルトのタイムゾーンを設定しようとしました。タイム スタンプの裏にある -04:00 が UTC との差を示していることはわかっています。以下は私が一緒にハッキングした解決策であり、うまくいきますが、私はこの方法があまり好きではないので、これをより良くする方法に関する改善や提案があればより良いでしょう.
$time_UTC= substr($time,0,-6);
$offset = substr($time,19,-3);
$offsetfloat = (float)$offset;
$timezoneName = timezone_name_from_abbr("", $offsetfloat*3600, false);
date_default_timezone_set($timezoneName);