Forum

Comment localiser les dates d'un flux RSS?

2012-09-18

Rick

Salut, j'ai une question au sujet du lecteur RSS qui fonctionne parfaitement je dois dire. J'ai vu un billet à ce sujet sur le forum, mais ne n'arrive toujours pas au résultat escompté.
J'habite en Hollande donc tout est néelandais, mais la date est affichée comme ceci: Sat, 15 Sep 2012 00:00:00 GMT. Comment puis-je changer cela? Avec le format Date de PHP, mais où dois-je mettre cela dans le fichier rsslib? Salutation, Rick.
2012-09-18

scriptol

Salut.
En fait la date est une chaîne extraite de la balise pubdate. Le format est celui qui est donné par le générateur RSS, vous pouvez changer cela, il y a sûrement sur le Web quelque script pour le faire.
C'est quelque chose que vous pouvez le changer dans la fonction RSS_tags:
$y["date"] = convert($date);
La fonction convert doit être ajoutée.
Cordialement,
le webmaster
2013-04-11 18:58:01

Scriptol

Mon travail pour répondre à une question récente apporte des informations supplémentaires sur ce problème.
D'abord il vous faut supprimer le jour de la semaine au début:
$phpdate = substr($y['date'],5);
ou selon la fonction où vous voulez mettre le code:
$phpdate = substr($date,5);
Et ensuite vous convertissez la date en timestamp:
$timestamp = strtotime($phpdate);
Finalement vous pouvez afficher la date dans tout format et toute localisation avec la fonction qui convient:
setlocale(LC_TIME, "nl_NL");
$pubdate = strftime("%V,%G,%Y", $timestamp);
$pubdate doit être maintenant affiché à la place de $y['date']; Vous pouvez replacer "nl_NL" par la localisation de n'importe quel pays (pour la France ce serait fr_FR).
Ainsi la fonction convert pourrait ressembler à ceci:
function convert($d)
{
  $phpdate = substr($d, 5);
  $timestamp = strtotime($phpdate);
  setlocale(LC_TIME, "nl_NL");
  return strftime("%V,%G,%Y", $timestamp);
}