如何在RSS feed </pubdate>上的<pubdate>元素中正确放置Date

时间:2012-02-23 00:16:11

标签: rss feed

我正在使用RSS Graffitty将RSS项目发布到Facebook页面。

应用程序告诉我项目缺少发布日期,所以我添加了这个标签:

echo "<pubdate>".$row['Date']."</pubdate>";

$ row ['Date']是从我的MySQL数据库获得的,它是一个Datetime列。

我如何格式化/回显它以便RSS提要识别它?我必须更改元素吗?

由于

2 个答案:

答案 0 :(得分:14)

<pubDate>元素上的

RSS 2.0规范应符合RFC 822 Date and Time syntax。即,以下列格式显示它:

  

2012年12月21日星期五10:00:01 GMT

如果您通过W3C Feed Validator错误运行RSS Feed,您会注意到这些有效RFC822日期时间的示例:

<pubDate>Wed, 02 Oct 2002 08:00:00 EST</pubDate>

<pubDate>Wed, 02 Oct 2002 13:00:00 GMT</pubDate>

<pubDate>Wed, 02 Oct 2002 15:00:00 +0200</pubDate>

如果您想使用MySQL格式,您可以使用以下use of date_format()调用该列,并根据需要调整UTC修饰符/标记:

date_format(Date, '%a, %d %b %Y %H:%i:%s')

或者您可以通过PHP date methodDATE_RSS setting the format为您完成:

echo "<pubdate>".date(DATE_RSS, strtotime($row['Date']))."</pubdate>";

确保您的<pubDate>元素显示在其父<item>节点中。

另请注意,此元素区分大小写。您必须使用大写D输出pubDate,而不是像其他元素一样输出小写(pubdate)。

答案 1 :(得分:1)

只是一个提示:php日期函数中的-r开关是RFC 2822格式的简写,实际上确实产生了四位数年份。

请参阅PHP Doc以供参考。