generando fechas validas para rss 2.0

rss logoCuando estamos desarrollando un generador de RSS para nuestros proyectos es inevitable que al final debamos probar nuestro producto haciendo uso de algún validador de RSS. Estos ademas vienen en diferentes sabores (W3C RSS validator, Feed validator), ahora bien estos validadores son bastante exigentes y cualquier cosa que pases por alto seguramente te lo van a resaltar. Así pues para evitar el error de la fecha a continuación una solución sencilla para tomar los timestamp que provienen de tu base de datos y convertirlos en fechas validas para tu RSS.

Los validadores hacen enfasis en que el estandar para fechas es el DATE_RFC822, pero las fechas que tenemos almacenadas en base de datos pueden ser del tipo timestamp (algo como: 2002-10-02 8:00). Para convertirlas puedes utilizar el siguiente trozo de codigo:

<?php echo date(“r”,strtotime((string)$fecha));?>

Siendo $fecha el valor donde tienes almacenado el timestamp. Ahora bien, este código esta basado en la solución provista por admin [at] xorath [dot] com que sirve para tomar un RSS que tenga un mal formato de fechas y convertirlo en uno con fechas validas (tomado de function date php):

<?php
header(‘Content-type: application/rss+xml; charset=iso-8859-1’);
$xmlfile = simplexml_load_file($_GET[feedURL]);
for ( $i = 0; $i < count($xmlfile->channel->item); $i++ )
$xmlfile->channel->item[$i]->pubDate = date(“r”,strtotime((string)($xmlfile->channel->item[$i]->pubDate)));
echo $xmlfile->asXML();
?>

Then simply link to your rss feed like this
filename.php?feedURL=http://www.example.com/rss.asp

Share and Enjoy:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • Add to favorites
  • Live

Tags: , , ,

Leave a Reply