以前から指摘されていたRSSの投稿日時(pubDate)を修正しました。
このブログはCakePHP1.2系で構築されているのですが、RSSの出力にはFeedCreatorを用いているのですが、そのTIME_ZONEの指定が問題でした(というかデフォルトのまま使っていました)。
最新版のver1.7.2だとクレジット表記の後に
define("TIME_ZONE","+01:00");
とあるのですが、このままだと日本時刻で本当の投稿日時の8時間後になってしまうので、
define("TIME_ZONE","+09:00 GMT");
とすることで対応できました。
ちなみにRSSで出力するためのViewは以下のようになっています。
<?php
vendor("feedcreator/feedcreator.class");
$rss = new UniversalFeedCreator();
$rss->title = $feedTitle;
$rss->description = "";
$rss->link = FULL_BASE_URL . '/' . PROJECT_NAME. '/'.USER_NAME;
$rss->syndicationURL = FULL_BASE_URL .'/'. PROJECT_NAME .'/'. USER_NAME .'/rss';
$rss->cssStyleSheet = "";
foreach ($rssData as $data) {
$item = new FeedItem();
$item->title = $data['title'];
$item->link = FULL_BASE_URL . '/' . PROJECT_NAME .'/'. USER_NAME . $data['link'];
$item->guid = FULL_BASE_URL . '/' . PROJECT_NAME .'/'. USER_NAME . $data['link'];
$item->description = $data['desc'];
$item->date = $time->toRSS($data['created']);
$rss->addItem($item);
}
$rss->outputFeed("RSS2.0");
?>
- $rss->link(ルートページ)
- $rss->syndicationURL(RSSのURL)
- $item->link(記事のURL)
- $item->guid(記事を一意に判別するID→記事のURLでもOK?)
は当ブログにおけるURLなので、該当のURLに置き換えてください。