1

我有一个从我设计的自定义博客生成的 RSS 提要;但是,我的一篇文章每天都会出现在我的 RSS 阅读器上。我终于检查了日期,发现它每天都显示,但从 2000 年开始。谷歌阅读器显示日期为每日更新帖子的日期,但查看 XML 代码,即显示 2000 年。所有其他帖子都是显示为 1969 年。

以下是我的 php 代码设置方式:

$rssfeed.='<pubDate>'.date("D, d M Y H:i:s O",strtotime($date)).'</pubDate>';

这是正确的方法吗?

编辑:我可能是个白痴——我没有在我的代码中将 $date 显示为变量——出于好奇,应该有什么?

4

2 回答 2

2

pubDate频道中内容的发布日期。例如,《纽约时报》每天发布一次,发布日期每 24 小时翻转一次。那是频道的 pubDate 发生变化的时候。RSS 中的所有日期时间都符合RFC 822的日期和时间规范,但年份可以用两个字符或四个字符(首选四个)表示。 2002 年 9 月 7 日星期六 00:00:01 GMT

见:http ://cyber.law.harvard.edu/rss/rss.html

$fromStringDate = strtotime($date);
if (!$fromStringDate) throw new Exception(sprintf('Date-Failure in "%s"', $date));
$rfc822Date = date("r", $fromStringDate);
$rssfeed .= sprintf('<pubDate>%s</pubDate>', $rfc822Date);

另见: http: //php.net/date

于 2012-08-27T22:59:35.787 回答
0

我想通了这个问题,这里是完整的代码:

while ($row = mysql_fetch_array($result)) {
    extract($row);
    $rssfeed.='<item>';
    $rssfeed.='<title>'.$title.'</title>';
    $rssfeed.='<description>'.validate($news).'</description>';
    $rssfeed.='<pubDate>'.date('r',$date).'</pubDate>';
    $rssfeed.='</item>';
}

$date在倒数第二行所说的地方,我strtotime出于某种原因将其包裹起来。我删除了它,一切都很好!

于 2012-08-27T23:44:06.313 回答