[PHP] DateTimeオブジェクトとRFC822形式文字列を相互変換

PHPで用意されているDateTimeオブジェクトと,RFC822規格で定められた文字列を相互に変換する処理です。RFC822形式の日付書式は、rss2.0のpubDateタグなどで使用されています。


サンプル

// DateTime -> RFC822
$sysdate = new DateTime();
echo $sysdate->format( DateTime::RFC822 );
 
 
// RFC822文字列 -> DateTime
$dateStr_rfc822 = "Wed, 30 May 2012 15:59:36 +0900";
$datetime = date('Y-m-d H:i:s', strtotime($dateStr_rfc822 ));



RFC822文字列からの出コードは、strtotime()に渡してあげれば適当にパースしてくれます。


ちなみにRFC822規格上では、以下の仕様になっています。

曜日と秒は省略しても良いです。
 
時分秒が1桁の場合は、先頭0埋めします。
 
RFC822的には年の部分は2桁でも4桁でも良いのですが、
本フォーマットを採用しているRSS2.0の仕様では"4桁にすべき"等、別途縛りがある場合も存在します。

関連記事

コメントを残す

メールアドレスが公開されることはありません。