2012-08-16 42 views
20

我無法使我的RSS源的日期正確運行。你知道顯示它的恰當日期是什麼嗎?RSS提要pubdate的正確格式是什麼?

我把它保存在一個名爲CREATION_DATE在此格式字段:2012-08-14 10時17分十二秒

然後我抓住它:

$pubDate = $article[creation_date]; 

然後我把它轉換:

$pubDate= date("Y-m-d", strtotime($pubDate)); 

然後我的項目標籤內,我把它:

<pubdate>'.date("l, F d, Y", strtotime($pubDate)).'</pubdate>

有沒有我沒有看到的東西?

+0

可能的重複[如何正確地將日期放在RSS提要中的元素](http://stackoverflow.com/questions/9405309/how-to-properly-place-date-in-pubdate-element-on- rss-feed) – random 2012-08-19 06:51:33

回答

19

解決:

$pubDate = $article[creation_date]; 
    $pubDate= date("D, d M Y H:i:s T", strtotime($pubDate)); 

然後我回顯的代碼:

<pubDate>'.$pubDate.'</pubDate> 
1

我用這樣的:

$item->date = date('D, d M Y H:i:s GMT', strtotime($myBlogPublishedTime)); 

my hp rss sample

3

什麼DateTime對象PHP 5> = 5.2.0

\DateTime::createFromFormat(\DateTime::RSS, $RSSDate); // converting RSS date to object 

date(\DateTime::RSS, $timestamp); // formatting timestamp to RSS time 

或兩者

$dto = \DateTime::createFromFormat(\DateTime::RSS, $RSSDate); 
date('d-M-Y H:i:s', $dto->getTimestamp()); // formatting RSS date to anything you want 

甚至更​​好

$dto = \DateTime::createFromFormat(\DateTime::RSS, $RSSDate); 
$formattedDate = $dto->format('d-M-Y H:i:s'); 
9

pubDate定義RSS 2.0 Specification

RSS中的所有日期時間均符合Date and Time Specification of RFC 822,但年份可以用兩個字符或四個字符(首選四個)表示。

以下是有效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> 

Problematical RFC 822 date-time value見。

+0

http://asg.web.cmu.edu/rfc/rfc822.html#sec-5已被刪除。 – 2014-11-20 19:17:54

+0

@PedroLobito更新了鏈接 – splash 2014-11-20 21:03:40

49

PHP的日期功能已的方式來格式化pubdate的(RFC 2822)兼容的日期:

date('r', $timestamp); 
5

RSS pubDate使用RFC 2822 standards。這可能是實現槽式PHP Date功能與參數r

<?php 
$now = time(); 
$pubDate= date('r', $now); 

echo "<pubDate>$pubDate</pubDate>"; 
//<pubDate>Thu, 20 Nov 2014 18:59:18 UTC</pubDate> 
?> 

如果你喜歡DateTime類,用途:

$pubDate = new DateTime(); 
echo $pubDate->format(DateTime::RSS); 
5

雖然接受的答案("D, d M Y H:i:s T")按預期工作的大部分時間,它不是100%正確的。在多語言情況下,該字符串可能會提供非英文文本,這不會被接受爲RFC兼容。要確保使用英文版,請使用"r"