我正在使用RSS Graffitty将RSS项目发布到Facebook页面。
应用程序告诉我项目缺少发布日期,所以我添加了这个标签:
echo "<pubdate>".$row['Date']."</pubdate>";
$ row ['Date']是从我的MySQL数据库获得的,它是一个Datetime列。
我如何格式化/回显它以便RSS提要识别它?我必须更改元素吗?
由于
答案 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 method与DATE_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以供参考。