我正在使用RSS Graffitty将RSS项目发布到Facebook页面。如何正确地将日期放在<pubdate>元素上RSS提要
该应用程序告诉我项目丢失的出版日期,所以我说这个标签:
echo "<pubdate>".$row['Date']."</pubdate>";
$行[“日期”]从我的MySQL数据库获得,这是一个datetime列。
我该如何格式化它/回显它才能被RSS提要识别?我必须改变这个元素吗?
感谢
我正在使用RSS Graffitty将RSS项目发布到Facebook页面。如何正确地将日期放在<pubdate>元素上RSS提要
该应用程序告诉我项目丢失的出版日期,所以我说这个标签:
echo "<pubdate>".$row['Date']."</pubdate>";
$行[“日期”]从我的MySQL数据库获得,这是一个datetime列。
我该如何格式化它/回显它才能被RSS提要识别?我必须改变这个元素吗?
感谢
RSS 2.0规格<pubDate>
元素应符合RFC 822 Date and Time syntax。也就是说,在下面的格式显示出来:
周五,2012年12月21日10:00:01 GMT
如果错误通过W3C Feed Validator你会注意到这些例子中运行你的RSS源有效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')
或者你可以用DATE_RSS
setting the format你通过PHP date method做到这一点:
echo "<pubdate>".date(DATE_RSS, strtotime($row['Date']))."</pubdate>";
确保您<pubDate>
元素出现在其父<item>
节点中。
另请注意,此元素区分大小写。您必须输出pubDate
的大写D,而不是全部小写(pubdate
),因为其他元素可以。
feedvalidator告诉我:'星期五,24 Feb 12 18:11:13 -0700'是错误的。它似乎符合这个例子。你有什么想法为什么会发生? http://feed2.w3.org/check.cgi?url=http%3A%2F%2Flujanventas.com – lisovaccaro 2012-02-25 03:53:55
将年份设置为四位数字,并且应该将其全部修复@lis – random 2012-02-25 04:01:50
使用DATE_RSS可能更好'而不是'DATE_RFC822',因为在后者生成的日期中,年仅由两位数表示。 – 2013-11-08 01:02:11
只是一个提示:PHP日期函数中的-r开关是RFC 2822格式的简写,实际上它确实产生了四位数的年份。
查看PHP Doc仅供参考。
小心你使用'pubDate'而不是'pubdate' – random 2012-02-25 03:46:10