1

自分がデザインしたカスタムブログから生成されたRSSフィードがあります。ただし、私の投稿の1つがRSSリーダーに毎日表示され続けます。最終的に日付を確認したところ、毎日表示されていましたが、2000年からです。Googleリーダーでは、投稿が毎日更新された日付が表示されますが、XMLコードを見ると、2000が表示されています。他のすべての投稿は1969年として表示されます。

これが私のphpコードのセットアップ方法です:

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

これは正しい方法ですか?

編集:私はおそらくばかです-私はコードの変数として$ dateを表示しません-好奇心から、何がそこにあるべきですか?

4

2 に答える 2

2

pubDateチャンネルのコンテンツの公開日。たとえば、New York Timesは毎日発行しており、発行日は24時間ごとに1回反転します。そのとき、チャネルのpubDateが変更されます。RSSのすべての日時は、 RFC 822の日時仕様に準拠しています。ただし、年は2文字または4文字(4文字を推奨)で表すことができます。 2002年9月7日土曜日00:00:01GMT

参照: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>';
}

最後から2行目にあるところ、なんらかの理由$dateで包んでもらいました。strtotime私はそれを取り除きました、そしてすべては順調です!

于 2012-08-27T23:44:06.313 に答える