PHP/RSS订阅源约会设置


PHP / RSS Feed Dating Setup

我有一个由我设计的自定义博客生成的RSS提要;然而,我的一篇帖子每天都会出现在我的RSS阅读器上。我终于查了一下日期,发现它每天都会出现,但从2000年开始。GoogleReader显示的日期是帖子每天更新的时间,但查看XML代码,它显示的是2000。所有其他员额均显示为1969年。

以下是我如何设置php代码:

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

这是正确的方法吗?

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

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

我发现了问题,下面是完整的代码:

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中。我把它拿走了,一切都很好!