web-dev-qa-db-ja.com

RSSフィード発行の正しい形式は何ですか?

RSSフィードの日付を正しく実行するのに問題があります。それを示す適切な日付を知っていますか?

このフォーマットでcreation_dateというフィールドに保存しました:2012-08-14 10:17:12

それから私はそれをつかみます:

_$pubDate = $article[creation_date];
_

次に変換します:

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

次に、アイテムタグ内に配置します。

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

見えないものはありますか?

27
Dan Fein

解決済み:

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

それから私のエコーコードで:

 <pubDate>'.$pubDate.'</pubDate>
23
Dan Fein

PHP date関数には、pubDate(RFC 2822)準拠の日付をフォーマットする方法が既にあります。

date('r', $timestamp);
56
Nebel54

RSS 2.0 SpecificationpubDate定義を参照してください:

RSSのすべての日時は、RFC 822の Date and Time Specification に準拠しています。ただし、年は2文字または4文字(4文字を推奨) )。

有効な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 もご覧ください。

12
splash

次の形式を使用します:D, d M Y H:i:s Ohttp://php.net/manual/en/class.datetime.php を参照してください

または、DateTime定数を使用してより簡単に使用できます:DateTime::RSS

11
Edd

Rss pubDateRFC 2822標準を使用しますphpでこれを実現するには、 Date 関数でr引数を呼び出します。

<?php
$pubDate= date('r', time());
echo "<pubDate>$pubDate</pubDate>";
# <pubDate>Thu, 20 Nov 2014 18:59:18 UTC</pubDate>
?>

DateTime クラスを使用する場合は、次を使用します。

$pubDate = new DateTime();
echo $pubDate->format(DateTime::RSS);
6
Pedro Lobito

受け入れられた答え("D, d M Y H:i:s T")はほとんどの場合期待どおりに機能し、100%正確ではありません。多言語環境では、この文字列は、RFC準拠として受け入れられない非英語テキストを提供する場合があります。英語バージョンが使用されていることを常に確認するには、"r"

DateTime object 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');
5
Paul T. Rawkeen

最も簡単な方法は、事前定義済みのDATE_RSS定数を使用することです(PHP 5.1.0)以降で使用可能)。

$pubDate = date(DATE_RSS, strtotime($pubDate));
2
weszy

私はこのように使用しました:

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

私のhp rssサンプル

1
matao