Bonjour,
J'ai réalisé un flux RSS mais j'ai un probleme de date...
Je voudrai que la date qui est comme ceci pour l'instant : 2010-06-02, soit sous cette forme là : Tue, 20 Apr 2010 00:00:00
Comment faire ?
Merci
Bonjour,
J'ai réalisé un flux RSS mais j'ai un probleme de date...
Je voudrai que la date qui est comme ceci pour l'instant : 2010-06-02, soit sous cette forme là : Tue, 20 Apr 2010 00:00:00
Comment faire ?
Merci
Salut
Il manque un dernier petit truc pour respecter la norme des dates pour un flux RSS, le GMT.
La norme est celle ci (théoriquement) : D, d M Y H:i:s O
Exemple :
Il la tout de même une doc sur les date : http://fr2.php.net/manual/fr/function.date.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $date_rss = date('D, d M Y H:i:s O');
Ou alors, il y a un nouvel objet : DateTime, qui contient différents format de date, comme celui du RSS.
Exemple :
La doc, toujours : http://fr2.php.net/manual/fr/class.datetime.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $datetime_rss = new datetime(); $datetime_rss->format(DateTime::RSS);
Oui mais avec $date_rss = date('D, d M Y H:i:s O'); ça me donne la date du jour.. En fait il faut que je récupère la date de parution de l'article, que j'ai déja mais pas sous le bon format...
Voici mon code si ça peut t'aider :
Il faudrait que last_modification_date soit au format Tue, 20 Apr 2010 00:00:00
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 <?php echo '<?xml version="1.0" encoding="utf8" ?>'; ?> <rss version="2.0"> <channel> <title>ASM Clermont Auvergne</title> <link>http://www.asm-rugby.com/index.html</link> <description>News de l'ASM rugby</description> <?php $actu = array(); for($j=0;$j<5;$j++) { $url = file_get_contents('http://www.asm-rugby.com/asm/news/getnews?start='.$j); $txt=json_decode($url); $i=0; $vars=get_object_vars($txt); foreach($vars as $var) { if($i>1) { echo '<item>'; echo '<title>'.$var->infosArticle->titre[0].'</title>'; echo '<link>http://localhost/test/news.php?url='.$var->pms_page->url.'</link>'; echo '<description>'.$var->infosArticle->chapeau[0].'</description>'; echo '<pubDate>'.$var->pms_page->last_modification_date.'</pubDate>'; echo '</item>'; } $i++; } } ?> </channel> </rss>
D'accord, mais je dirais que tu confond vitesse et précipitation
Je t'ai donné 2 liens vers la doc tout de même, et je pense que n'a pas du tout pris le temps de la parcourir.
Il y a plein de fonctions sur les date.
A commencer par checkdate(), pour déjà savoir si ce que tu récupère est bien une date.
Puis mktime, par exemple. Ici, suffirait d'extraire le jour, mois, année de la date que tu obtiens pour l'appliquer dans le mktime pour obtenir au bout un timestamp de cette date. La fonction date() te permettra au final d'avoir cette date au format Rss en fonction du timestamp.
Ou alors, il y a une autre fonction, c'est strtotime(), qui te permet là encore d'avoir un timestamp à partir d'une chaine de date.
Mais encore, en admettant que c'est bien une date et au format Y-m-d, alors on directement faire :
Si tu parviens à créer un flux RSS en Php, tu dois pouvoir exploiter 1ou 2 fonctions à partir d'une doc, non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $datetime_rss = new datetime($var->pms_page->last_modification_date.' 00:00:00'); $datetime_rss->format(DateTime::RSS);
Si je suis allé voir la doc mais je n'ai pas tout compris et j'ai essayé certaines balises mais ça n'a pas marché donc c'est qu'elle ne correspondaient pas ...
Je vais essayer de trouvé la bonne balise.
Merci
C'est le minimum, car si tu n'as pas de date sous le coude, ça ne va pas l'faire.Je vais essayer de trouvé la bonne balise.
Relis ce que j'ai mis le post plus haut, je pense que tu n'a pas eu le temps de tout lire, donc voir toute les solutions que j'ai évoqué.
Partager