IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Convertir une date


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 101
    Par défaut Convertir une date
    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

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $date_rss = date('D, d M Y H:i:s O');
    Il la tout de même une doc sur les date : http://fr2.php.net/manual/fr/function.date.php

    Ou alors, il y a un nouvel objet : DateTime, qui contient différents format de date, comme celui du RSS.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $datetime_rss = new datetime();
    $datetime_rss->format(DateTime::RSS);
    La doc, toujours : http://fr2.php.net/manual/fr/class.datetime.php

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 101
    Par défaut
    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 :

    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>
    Il faudrait que last_modification_date soit au format Tue, 20 Apr 2010 00:00:00

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    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 :
    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 tu parviens à créer un flux RSS en Php, tu dois pouvoir exploiter 1ou 2 fonctions à partir d'une doc, non ?

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2010
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 101
    Par défaut
    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

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Je vais essayer de trouvé la bonne balise.
    C'est le minimum, car si tu n'as pas de date sous le coude, ça ne va pas l'faire.

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 29/06/2005, 10h22
  2. Convertir une date lunaire
    Par djeckelle dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 03/12/2004, 14h06
  3. []Comment convertir une date GMT en date vb ?
    Par Invité dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 11/08/2004, 16h01
  4. Convertir une date au format excel en datetime SQL server
    Par ALLB dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 20/07/2004, 11h28
  5. Convertir une date en type string
    Par ziboux dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 29/10/2003, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo