PHP Afficher une date différament

Salut tout le monde,

J'aimerait convertir une date de format aa/mm/jj en format jj, nom du mois en lettre et année

Exemple : 2007-09-08 donnerait 8 Sept. 2007 ou 8 septembre 2007

Quelqun peut m'aider?

Merci
Configuration: Windows XP
Firefox 2.0.0.6

9 réponses

  1. Bonjour,

    moi je créerais un fichier nommer : time.php ( sauf si tu sais ou le mettre dans un de tes fichiers... Ok ... )

    Mettre sa en première ligne par exemple :

    $parse['time'] = 'Nous sommes le '.date('j/m/Y').' et il est '.date('H \H i : s');

    Ensuite créer un fichier nommer : time.tpl

    Mettre sa en première ligne par exemple :

    {Server_time}

    Enfin , créer un fichier : time.mo

    Mettre sa en première ligne par exemple :

    $lang['Server_time'] = 'Heure';

    J'espère que je n'ai pas fais d'erreur ... En tout cas moi sa marche ...
    0
    1. Bjr

      N'ayant pas PHP 5, je ferais comme ça :

      <html>
      <body>
      <?php
      
      $month_fr = array("janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre");
      
      $day_fr = array("dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi");
      
      // $aaaammjj doit être une chaîne au format "AAAA-MM-JJ" ou "AAAA/MM/JJ" mais toujours avec un séparateur
      function madate_timestamp($aaaammjj)
      {
      	$ar = explode(substr($aaaammjj,4,1),$aaaammjj);
      	return mktime(0, 0, 0, $ar[1], $ar[2], $ar[0]);
      }
      
      function madate_perso($aaaammjj)
      {
      	global $month_fr,$day_fr;
      	$ts = madate_timestamp($aaaammjj); 
      	$ar  = getdate($ts);
      
      	return $day_fr[$ar["wday"]]." ".$ar["mday"]." ".$month_fr[$ar["mon"]-1]." ".$ar["year"];
      }
      
      $aaaammjj="2007-09-23";
      echo  $aaaammjj.' -> '.madate_perso($aaaammjj); 
      ?>
      </body>
      </html>


      voilà
      0
      1. bonjour,

        Cela fait 2 jours que je cherchais comment mettre ma date recupérée avec Mysql en lettre, et voila que je tombe sur ton bout de code super efficace qui a resolu avec perfection mon probleme.
        2007-2009 : les années passent mais php est toujours la ^^

        Merci
        0
    2. Contributeur
      setlocale(LC_TIME, "fr", "fra", "french", "fr_FR");
      $timestamp = strtotime("2007-09-08");
      $final_complet = strftime("%d %B %Y", $timestamp); // 8 septembre 2007
      $final_abrege = strftime("%d %b %Y", $timestamp); // 8 sept. 2007
      0
      1. J'ai eut le meme souci dans une application que j'ai develloppé au sein du site intranet de mon entreprise : Voila le type de script que j'ai mis en place adapte le :

        //Tranformation de la date en Francaise
        $Year =substr($Date,7,4);
        $Month=substr($Date,0,3);
        $Day  =substr($Date,4,2);
        
        switch($Month)
          {
          case "Jan":
            $Month = "01";
        	break;
          case "Feb":
            $Month = "02";
        	break;
          case "Mar":
            $Month = "03";
        	break;
          case "Apr":
            $Month = "04";
        	break;
          case "May":
            $Month = "05";
        	break;
          case "Jun":
            $Month = "06";
        	break;
        	case "Jul":
            $Month = "07";
        	break;
          case "Aug":
            $Month = "08";
        	break;
          case "Sep":
            $Month = "09";
        	break;
          case "Oct":
            $Month = "10";
        	break;
          case "Nov":
            $Month = "11";
        	break;
         case "Dec":
            $Month = "12";
        	break;
         
          }
        
          $Date =$Day."/".$Month."/".$Year;
        //Extrait hh:mm:ss
        	$Heure=substr($Heure,12,14);
        //Liste les données
        	list($hour, $min, $sec, $am_pm) = explode(":", $Heure);
        //Extrait si PM ou AM
        	$am_pm=substr($am_pm,3,2);
        //Si am_pm=PM et heure est diff de 12
        	if($am_pm =="PM" && $hour!=12)
        	{
        		$hour=$hour+12;
        	}	
        	elseif ($am_pm=="AM" && $hour==12)
        	{
        		$hour=$hour-12;
        	}
        	$Heure=$hour.":".$min.":".$sec;


        En esperant que cela t'aidera
        1
        1. En effet, tu as deviné , je suis un utilisateur de windows ;)... La fonction ne semble pas marcher. Vu ma grande hâbileter à créer des fonctions en php(un peu de sarcasme). Je risque de garder mon problème très longtemps. Je continu mes recherches.
          0
          1. Bonsoir,

            Comment va-t-il apprendre si vous lui mâchez le travail...
            De toute manière, 80% des gens utilisent windows chez eux... même si linux, avec une debian, est un système bien plus stable...
            Donc il va continuer à avoir un problème, notre ami... s'il a windows sur son ordinateur...

            @ +
            0
            1. Contributeur
              setlocale(LC_TIME, "fr", "fra", "french", "fr_FR");
              $datetime = strptime("2007-09-08", "%Y-%m-%d");
              $timestamp = mktime(0,0,0,$datetime["tm_mon"], $datetime["tm_mday"], $datetime["tm_year"]);
              $final_complet = strftime("%d %B %Y", $timestamp); // 8 septembre 2007
              $final_abrege = strftime("%d %b %Y", $timestamp); // 8 sept. 2007

              Script sous à condition car la fonction strptime ne semble pas dispo (j'ai ouïe dire) sous PHP version Windows et est seulement dispo à partir de PHP 5.1.0RC1.
              De plus, si seul les noms des jours et des mois en anglais sont nécesaire, on peut remplacer strftime par un date(...)
              0
              1. En fait j'esperait plutôt avoir un script pré conçu fonctionnel.

                J'ai fait plusieurs recherche sur internet sans trouver exactement se que je voulais.

                Merci
                0
                1. Bonjour,

                  La doc php téléchargeable sur nexen.net donne toutes les informations nécessaires sans avoir besoin d'être connecté au web...
                  Il faut regarder les fonctions qui tournent autour de date() et de la configuration locale de votre serveur.

                  date("H:i:s"); renvoie par l'heure actuelle sous la forme hh:mm:ss
                  Il s'agit de faire pareil avec les options désirée de la fonction date.

                  Pour les obtenir sans avoir à traduire, set_locale() est une fonction à regarder de près.

                  Cordialement.
                  0