Notions abordées :
    Les tableaux
    La fonction date
    Traitement de chaine de caractère


      img:coupe
      script complet :
      CODE
      <?

      $date = "2001-09-03 22:10";

      $prefix = "Le ";

      $suffix = " à";

      $tab_month = array(1=>"Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre");

      $tab_day = array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");

      $tab_date = explode(' ', $date);

      $date_hour = explode(':', $tab_date[1]);

      $tab_dmy = explode('-', $tab_date[0]);

      $day = date("w", mktime(0, 0, 0, $tab_dmy[1], $tab_dmy[2], $tab_dmy[0]));

      $date = $prefix . "$tab_day[$day] " . "$tab_dmy[2] ";

      settype($tab_dmy[1], integer);

      $date .= $tab_month[$tab_dmy[1]] . " $tab_dmy[0]" . $suffix . " $date_hour[0]h " . "$date_hour[1]min";

      ?>

      img:coupe
      script commenté :

      CODE
      $date = "2001-09-03 22:10";

      les variables dont le tableau qui contient tous les mois et celui des jours

      CODE
      $prefix = "Le ";

      $suffix = " à";

      $tab_month = array(1=>"Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre");

      $tab_day = array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");

      format de la date 2001-09-03 22:10 on cree un tableau dont les élements sont crées à partir de la date coupée aux espaces grace à la fonction explode
      on aura donc dans la case 0 de $tab_date 2001-09-03 et dans la case 1 22:10

      CODE
      $tab_date = explode(' ', $date);

      on recupere chaques parties de l'heure dans un autre tableau $date_hour

      CODE
      $date_hour = explode(':', $tab_date[1]);

      on recupere chaques parties de la date dans un autre tableau $date_dmy

      CODE
      $tab_dmy = explode('-', $tab_date[0]);

      on crée la date au format français en determinant le numero du jour de la semaine grace à la fonction mktime combinée avec la fonction date.

      CODE
      $day = date("w", mktime(0, 0, 0, $tab_dmy[1], $tab_dmy[2], $tab_dmy[0]));

      $date = $prefix . "$tab_day[$day] " . "$tab_dmy[2] ";

      à ce stade on a deja dans $date Le Lundi 3
      on recupere le mois a partir du tableau, le fait de mettre $tab_dmy[1] en integer permettra de l'utiliser comme index dans le tableau tab_month et on termine avec l'h.

      CODE
      settype($tab_dmy[1], integer);

      $date .= $tab_month[$tab_dmy[1]] . " $tab_dmy[0]" . $suffix . " $date_hour[0]h " . "$date_hour[1]min";

      dans $date on aura donc Le Lundi 03 Septembre 2001 à 22h 10min apres rien ne vous empeches de rajouter les secondes ou d'enlever les Le à min h etc. Il est possible aussi de mettre tout ce code dans une fonction qui prendra en paramètre une date timestamp et qui renvera la date correctement formatée en français.

      img:coupe img:remarque A voir également :