[PHP] RSS2.0のpubDateを欧米式の日付表記に変換する方法

RSS2.0のXMLデータを扱うときに注意しなければならないのがpubDateです。pubDateは「Wed, 10 Oct 2015 17:10:35 +0000」のような表記になってしまっています。そのままではサイトに日時を表示させたいときなど、ユーザーが見てもわかりにくいですし、プログラム上も処理に困ります。良く使う「2015-01-01 00:00:00」の形に変換する方法をご紹介します。

日時のフォーマットを行う関数「date()」とUNIXタイムを扱う「strtotime()」関数を組み合わせて使います。

<?php 
$rssDate = "Tue, 20 Feb 2015 13:25:35 +0900"; 
date_default_timezone_set('Asia/Tokyo');
$newDate = strtotime($rssDate); 
echo date('Y-m-d H:i:s', $newDate); 
?>

[出力結果]

2015-02-24 13:25:35

日本時間に合わせたい場合は「date_default_timezone_set(‘Asia/Tokyo’);」を指定します。

プログラムの手順を説明します。
「$ssDate」を「strtotime」関数でUNIXタイムスタンプに変換しています(1970年1月1日からの経過秒数)
その後UNIXタイムスタンプを「date」関数で欧米型の日付表記にフォーマット変更しています。



Author: webmaster