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

lis*_*aro 9 rss feed

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

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

echo "<pubdate>".$row['Date']."</pubdate>";
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢

ran*_*dom 14

<pubDate>元素上的RSS 2.0规范应符合RFC 822日期和时间语法.即,以下列格式显示它:

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

如果您通过W3C Feed验证器错误运行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>
Run Code Online (Sandbox Code Playgroud)

如果你想使用MySQL格式,你可以使用以下方法date_format()调用列,根据需要调整UTC修饰符/标记:

date_format(Date, '%a, %d %b %Y %H:%i:%s')
Run Code Online (Sandbox Code Playgroud)

或者你也可以通过做PHP日期的方法DATE_RSS 设置格式为您提供:

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

确保您的<pubDate>元素出现在其父<item>节点中.

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