format date

dudo
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 453
Inscription: 10 Jan 2004

format date

Message le Ven Mar 17, 2006 19:00

Bonjour,

N'etant pas très au fait de strtotime et date , je vous explique mon cas
si je parse un fichier xml au format
<pubDate>Wed, 15 Mar 2006 23:00:00 GMT</pubDate>
tout fonctionne tres bien, avec $date = date("d-m-Y", strtotime($item['pubdate']));

En revanche avec une date au format français
<pubDate>jeu., 16 mars 2006 10:02:00 GMT</pubDate>
plus rien sinon un 00/00/1970

Merci pour conseil ou exemple, cas utile par ailleurs

ludo

Code: Tout sélectionner
function FeedParser($url_feed, $nb_items_affiches=5)
{
  // lecture du fichier distant (flux XML)
  $rss = fetch_rss($url_feed);

  // si la lecture s'est bien passee, on lit les elements
  if (is_array($rss->items))
  {
    // on ne recupere que les elements les + recents
    $items = array_slice($rss->items, 0, $nb_items_affiches);

    //
    setlocale(LC_TIME, 'en', 'en_US', 'english');
   
    $html = "<div class=mnutabla>\n";
       
    // boucle sur tous les elements
    foreach ($items as $item)
    {
     
      $date = date("d-m-Y", strtotime($item['pubdate']));
      $html .= "<P class=a>$date <a href=\"".$item['guid']."\">";
      $html .= $title."</a></br>\n";

    }
    $html .= "</div>\n";
  }


sunflower
WRInaute discret
WRInaute discret
 
Messages: 121
Inscription: 5 Jan 2006

Re: format date

Message le Ven Mar 17, 2006 20:26

dudo a écrit:<pubDate>Wed, 15 Mar 2006 23:00:00 GMT</pubDate>
tout fonctionne tres bien, avec $date = date("d-m-Y", strtotime($item['pubdate']));

En revanche avec une date au format français
<pubDate>jeu., 16 mars 2006 10:02:00 GMT</pubDate>
plus rien sinon un 00/00/1970


Salut, pour info:
strtotime -- Transforme un texte anglais en timestamp (fr2.php.net/manual/fr/function.strftime.php)

Pas de gestion de locale donc, le setlocale ne change rien. Par contre, la fonction strftime prend en compte la localisation (à condition de la lui spécifier au préalable avec setlocale).

Si tu ne sais pas comment arriveront tes dates (et si le français est la seule langue étrangère...), tu peux tester si le résultat convient avec la conversion ricaine, si ça te renvoie 1970: changer la locale en français (setlocale (LC_ALL, 'fr_FR');), revérifier. Rechanger la locale US, et gérer si la version fr est un succès ou non...
Hope this helps :)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités