この関数は US 英文形式の日付を含む文字列が指定されることを期待しており、 now で与えられたその形式から Unix タイムスタンプ (1970 年 1 月 1 日 00:00:00 GMT からの経過秒数) への変換を試みます。
ということなので、xml系の日付フォーマットも簡単に読み込めたらシンプルにできると思って検証してみた。
<?php #美乳 error_reporting(E_ALL); $datestr = array( "RSS1"=>"2008-09-14T22:21:57+09:00", "RSS2"=>"Sun, 14 Sep 2008 13:21:57 GMT", ); foreach($datestr as $ver=>$date){ echo "$ver:".date(DATE_ATOM,strtotime($date))."\n"; } ?>
で、出力結果。
RSS1:2008-09-14T22:21:57+09:00
RSS2:2008-09-14T22:21:57+09:00
dateのフォーマット定数にDATE_ATOMとかが組み込まれているのだから読み込みはいけるんではないかと期待していたが、期待通りどちらもいけるようだ。これまではこんな関数書いてた。
<?php function RssToUnix($rssdate){ if(ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})\+09:00",$rssdate,$temp)){ return mktime($temp[4],$temp[5],$temp[6],$temp[2],$temp[3],$temp[1]); }else{ return FALSE; } } ?>