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));
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"
.
Utilice este formato: D, d MYH:i:s O
Ver http://php.net/manual/en/class.datetime.php
O use las constantes de DateTime para un uso más fácil: DateTime::RSS
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 .