我正在使用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