validator campaña php rss

php - campaña - rss mailchimp



¿Cuál es el formato correcto para el feed RSS pubdate? (9)

¿Qué pasa con el objeto DateTime ( PHP 5> = 5.2.0 )

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

o

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

o ambos

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

o mejor

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

Tengo problemas para obtener la fecha de mi RSS para funcionar correctamente. ¿Sabes cuál es la fecha adecuada para mostrarlo?

Lo tengo almacenado en un campo llamado creation_date en este formato: 2012-08-14 10:17:12

Entonces lo agarro:

$pubDate = $article[creation_date];

Luego lo convierto:

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

Entonces dentro de mi etiqueta del artículo lo coloco:

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

¿Hay algo que no estoy viendo?


El método más sencillo es usar la constante predefinida DATE_RSS (disponible desde PHP 5.1.0).

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


He usado así:

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

mi hp rss muestra


La función de fecha de PHP ya tiene una forma de formatear fechas compatibles con pubDate (RFC 2822):

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


Resuelto

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

Luego en mi código de eco:

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


Rss pubDate utiliza los estándares RFC 2822 . Esto se puede lograr a través de la función php Date con el argumento r

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

Si prefieres la clase http://php.net/manual/en/class.datetime.php , usa:

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


Si bien la respuesta aceptada ("D, d MYH:i:s T") funciona como se espera la mayor parte del tiempo, no es 100% correcta. En situaciones multilingües, esta cadena puede proporcionar texto que no esté en inglés y que no se aceptará como compatible con RFC. Para estar siempre seguro de que se usa la versión en inglés, use "r" .



Ver la definición de pubDate en RSS 2.0 .

Todas las fechas y horarios en RSS se ajustan a la especificación de fecha y hora de RFC 822 , con la excepción de que el año puede expresarse con dos caracteres o cuatro caracteres (cuatro preferidos).

Aquí hay algunos ejemplos de fechas y fechas de RFC822 válidas:

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

Consulte también el valor de fecha y hora del RFC 822 problemático .