Se connecter avec
S'enregistrer | Connectez-vous

[Résolu] Explications php formtage date fr

Dernière réponse : dans Programmation

Voila je débute en php et je viens donc de "réussir" a afficher une date sous le format suivant:
ex: Mardi 23 Janvier 2007.

Cependant j'aimerais quand meme qq explications car le code trouvé sur internet ne me parle pas trop.

  1. <?php
  2. // fonction date en francais
  3. function date_fr()
  4. {
  5. $mois = array("Janvier", "Fevrier", "Mars",
  6. "Avril","Mai", "Juin",
  7. "Juillet", "Août","Septembre",
  8. "Octobre", "Novembre", "Decembre");
  9. $jours= array("Dimanche", "Lundi", "Mardi",
  10. "Mercredi", "Jeudi", "Vendredi",
  11. "Samedi");
  12. return $jours[date("w")]." ".date("j").$mois[date("n")-1]." ".date("Y");
  13. }
  14. print(date_fr());
  15. ?>


Merci a vous.
Sylvain37 a édité ce message
Lassé par la pub ? Créez un compte

Chez moi, j'utilise ces deux "choses".. Ca n'est pas très "parfait" côté usage du PHP, mais ça fonctionne :
  1. function gendate() { // Génère la date, si besoin (cas où la date n'est pas lue dans une bdd)
  2. $date = date("w d m Y\, H\hi");
  3. return $date;
  4. }
  5.  
  6. function changedate($date,$format) { // Transforme la date au format désiré
  7. if (ereg("([0-6]{1}) ([0-9]{2}) ([0-9]{2}) ([0-9]{4}), ([0-9]{2})h([0-9]{2})", $date, $regs) OR ereg("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})", $date, $regs)) {
  8. $yyyy = 4;
  9. $mm = 3;
  10. $dd = 2;
  11. $offset = 0;
  12.  
  13. if (ereg("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})", $date, $regs)) {
  14. $yyyy = 1;
  15. $mm = 2;
  16. $dd = 3;
  17. $offset = 1;
  18. }
  19.  
  20. $tab_jours = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
  21. $DayName = $tab_jours[($regs[1])];
  22.  
  23. $jourNum = $regs[$dd];
  24. if($regs[$dd] == "1") {
  25. $jourNumPart = "1er";
  26. }
  27. elseif($regs[$dd] > "1" && $regs[$dd] < "10") {
  28. $jourNumPart = substr($regs[$dd], 1,1);
  29. }
  30. else { $jourNumPart = $regs[$dd]; }
  31.  
  32. $tab_mois = array("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
  33. $moisNum = $regs[$mm];
  34. $moisName = $tab_mois[($regs[$mm]-1)];
  35.  
  36. $anneeNum = $regs[$yyyy];
  37.  
  38. $heureNum = $regs[5 - $offset];
  39.  
  40. $minNum = $regs[6 - $offset];
  41.  
  42. switch ($format) {
  43. case 1 : $date = $DayName.' '.$jourNumPart.' '.$moisName.' '.$anneeNum.', '.$heureNum.'h'.$minNum; break;
  44. // Format "Lundi 20 Avril 2006, 20h30"
  45. case 2 : $date = $anneeNum.'-'.$moisNum.'-'.$jourNum.', '.$heureNum.'h'.$minNum; break;
  46. // Format "2006-04-20, 20h30"
  47. case 3 : $date = $jourNumPart.' '.$moisName.' '.$anneeNum; break;
  48. // Format "20 Avril 2006"
  49. case 4 : $date = $DayName.' '.$jourNumPart.' '.$moisName.' '.$anneeNum; break;
  50. // Format "Lundi 20 Avril 2006"
  51. case 5 : $date = $jourNum.' / '.$moisNum.' / '.$anneeNum; break;
  52. // Format "20 / 04 / 2006"
  53. case 6 : $date = $jourNum.'.'.$moisNum.'.'.$anneeNum.', '.$heureNum.'h'.$minNum; break;
  54. // Format "20.04.2006, 20h30"
  55. }
  56. }
  57. return $date;
  58. }

Vois ce qui peut te convenir ;) ..

:jap: 

Sinon j'ai ça à te proposer:
  1. <?php
  2. setlocale(LC_ALL, 'french');
  3. $JourL = strftime("%A");
  4. $Jour = strftime("%d");
  5. $Mois = strftime("%B");
  6. $Annee = strftime("%Y");
  7. $heure = date("H:i");
  8. echo "Bonjour, nous sommes le $JourL $Jour $Mois $Annee et il est $heure";
  9. ?>

Peut-etre cela te sera-t-il plus parlant ?
Expert Programmation

Pour ta méthode FloK, elle est très proche de celle dont je me sers aussi et fait appel aux tableaux php. Lit la doc php sur les arrays et tu comprendras le fonctionnement.

Dans le return, entre crochets se trouve au final un nombre (données par la variable $date) ce nombre renvoi ensuite à la ligne du tableau donné par la variable placé avant les crochets. SI tu te reporte au contenu de cette variable, tu verras que c'est un tableau (dfinit juste au dessus. Et si tu compte (en commençant à 0, tu verras que le nombre plac" entre crochet par ta variable date renvoie automatiquement sur le jour correspondant dans la ligne du tableau visé.

Idem pour les mois.

Chapellois a dit :
Sinon j'ai ça à te proposer:
  1. <?php
  2. setlocale(LC_ALL, 'french');
  3. $JourL = strftime("%A");
  4. $Jour = strftime("%d");
  5. $Mois = strftime("%B");
  6. $Annee = strftime("%Y");
  7. $heure = date("H:i");
  8. echo "Bonjour, nous sommes le $JourL $Jour $Mois $Annee et il est $heure";
  9. ?>

Peut-etre cela te sera-t-il plus parlant ?


c'est (presque) la meilleurs méthode ...

pour bien faire, faut ne faire qu'un seul appel a strftime
  1. <?php
  2. setlocal(LC_ALL, 'french');
  3. echo strftime("Bonjour, nous sommes le %A %d %B %Y et il est %H:%M");
  4. ?>
Lassé par la pub ? Créez un compte