42

RSS フィードの日付を正しく取得できません。それを表示する適切な日付を知っていますか?

この形式で creation_date というフィールドに保存しています: 2012-08-14 10:17:12

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

$pubDate = $article[creation_date];

それから私はそれを変換します:

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

次に、item タグ内に配置します。

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

私が見ていないものはありますか?

4

9 に答える 9

70

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

date('r', $timestamp);
于 2014-07-29T08:43:55.500 に答える
27

解決済み:

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

次に、エコーしたコードで:

 <pubDate>'.$pubDate.'</pubDate>
于 2012-08-23T00:30:41.633 に答える
11

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

または、より簡単に使用するために DateTime 定数を使用します。DateTime::RSS

于 2013-01-09T13:57:54.140 に答える
11

RsspubDateRFC 2822 標準を使用します。これは、日付関数で引数をphp呼び出すことで実現できます。つまり、次のようになります。r

<?php
$pubDate= date('r', time());
echo "<pubDate>$pubDate</pubDate>";
# <pubDate>Thu, 20 Dec 2022 02:46:11 UTC</pubDate>
?>

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

$pubDate = new DateTime();
echo $pubDate->format(DateTime::RSS);
于 2014-11-20T19:12:35.807 に答える
5

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');
于 2013-03-19T20:10:23.210 に答える
5

受け入れられた回答("D, d M Y H:i:s T")はほとんどの場合期待どおりに機能しますが、100% 正しいわけではありません。多言語の状況では、この文字列は RFC 準拠として受け入れられない英語以外のテキストを与える場合があります。常に英語版が使用されていることを確認するには、 を使用して"r"ください。

于 2015-04-20T11:08:05.030 に答える
1

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

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

私のHPのRSSサンプル

于 2013-03-12T06:05:53.793 に答える