Quel est le format correct pour le flux RSS pubdate?

j'ai du mal à faire fonctionner correctement la date de mon flux RSS. Savez-vous quelle est la date correcte pour le montrer?

je l'ai stocké dans un champ appelé creation_date dans ce format: 2012-08-14 10:17:12

Alors, je prends ça:

$pubDate = $article[creation_date];

Puis-je convertir:

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

Puis dans ma balise d'élément de je la place:

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

y a - t-il quelque chose que je ne vois pas?

24
demandé sur splash 2012-08-16 22:28:43
la source

8 ответов

la fonction PHP date a déjà un moyen de formater les dates conformes à pubDate (RFC 2822):

date('r', $timestamp);
52
répondu Nebel54 2014-07-29 12:43:55
la source

Résolu:

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

puis dans mon code echo:

 <pubDate>'.$pubDate.'</pubDate>
24
répondu Rusty Schmidt 2012-08-23 04:30:41
la source

Utilisez ce format: D, d M Y H:i:s O. Voir http://php.net/manual/en/class.datetime.php

ou utilisez les constantes DateTime pour une utilisation plus facile:DateTime::RSS

11
répondu Edd 2013-01-09 17:57:54
la source

Voir pubDate définition spécification RSS 2.0:

toutes les dates dans RSS sont conformes à la Date et l'Heure de Spécifications de la RFC 822, sauf que l'année peut être exprimée avec deux ou quatre caractères (quatre de préférence).

Voici des exemples de date-heure RFC822 valide:

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

Voir aussi Problématique de la RFC 822 date de valeur.

10
répondu splash 2014-11-20 23:56:47
la source

alors que la réponse acceptée ("D, d M Y H:i:s T") fonctionne comme prévu, la plupart du temps, il n'est pas correct à 100%. Dans les situations multilingues cette chaîne peut donner du texte non anglais qui ne sera pas accepté comme conforme RFC. Pour être sûr que la version anglaise est utilisée, utilisez "r".

5
répondu Charalampos Tsimpouris 2015-04-20 14:31:39
la source

Rss pubDate utilise RFC 2822 standards. Cela peut être réaliser creux php Date fonction avec l'argument r

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

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

Si vous préférez la DateTime classe, utilisez:

$pubDate = new DateTime();
echo $pubDate->format(DateTime::RSS);
5
répondu Pedro Lobito 2018-03-04 17:08:23
la source

Qu'en est-il DateTime objet ( PHP 5 >= 5.2.0)

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

ou

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

ou les deux

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

ou encore mieux

$dto = \DateTime::createFromFormat(\DateTime::RSS, $RSSDate);
$formattedDate = $dto->format('d-M-Y H:i:s');
4
répondu Paul T. Rawkeen 2013-03-20 00:10:23
la source

je l'ai utilisé comme ceci:

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

mon hp rss de l'échantillon

1
répondu matao 2013-03-12 10:26:19
la source

Autres questions sur