it-swarm.com.de

Was ist das richtige Format für das Pubdate eines RSS-Feeds?

Ich habe Probleme, das Datum meines RSS-Feeds korrekt zu ermitteln. Weißt du, wann das richtige Datum dafür ist?

Ich habe es in einem Feld namens creation_date in diesem Format gespeichert: 2012-08-14 10:17:12

Dann schnappe ich es mir:

$pubDate = $article[creation_date];

Dann konvertiere ich es:

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

Dann platziere ich es in meinem Item-Tag:

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

Gibt es etwas, das ich nicht sehe?

25
Dan Fein

Gelöst:

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

dann in meinem Echo-Code:

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

Die Datumsfunktion von PHP kann bereits mit pubDate (RFC 2822) kompatible Datumsangaben formatieren:

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

Siehe pubDate Definition in RSS 2.0 Spezifikation :

Alle Datums- und Uhrzeitangaben in RSS entsprechen der Date and Time-Spezifikation von RFC 822 mit der Ausnahme, dass das Jahr mit zwei oder vier Zeichen (vier bevorzugt) ausgedrückt werden kann.

Hier sind Beispiele für gültige RFC822-Datumszeiten:

<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>

Siehe auch Problematischer Datum/Uhrzeit-Wert des RFC 822 .

11
splash

Verwenden Sie dieses Format: D, d M Y H:i:s O. Siehe http://php.net/manual/de/class.datetime.php

Oder verwenden Sie DateTime-Konstanten, um die Verwendung zu vereinfachen: DateTime::RSS

11
Edd

Rss pubDate verwendet die RFC 2822-Standards . Sie können dies in php erreichen, indem Sie das r-Argument für die Funktion Date aufrufen, d. H.

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

Wenn Sie die DateTime -Klasse bevorzugen, verwenden Sie:

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

Während die akzeptierte Antwort ("D, d M Y H:i:s T") meistens wie erwartet funktioniert, ist sie nicht zu 100% korrekt. In mehrsprachigen Situationen kann diese Zeichenfolge nicht englischen Text enthalten, der nicht als RFC-konform akzeptiert wird. Um immer sicher zu sein, dass die englische Version verwendet wird, verwenden Sie "r".

Was ist mitDateTimeobject (PHP 5> = 5.2.0)

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

oder

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

oder beides

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

oder noch besser

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

Die einfachste Methode ist die Verwendung der vordefinierten DATE_RSS-Konstante (verfügbar seit PHP 5.1.0).

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

Ich habe so benutzt:

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

meine hp rss probe

1
matao