Convertir un Date en php

.Steff

Membre expert
Club iGen
6 Septembre 2005
1 294
104
BOnjour,
le titre n'est pas tres explicite. Alors j'explique.
J'ai une base de données recevant les données d'un formulaire.
Parmi les champs, un champ date, au format date de Mysql, c'est à dire yyyy/mm/jj ( non?)
J'aimerais afficher cela à l'affiche du récapitulatif final sous la forme jj/mm/yyyy

J'ai un peu regardé sur le net, je n'est pas trouvé de truc répondant exactement à cela.


Si quelqu'un sait faire ca...
D'avance merci :)
 
Grosso modo tu as une string, et tu veux la convertir en une autre string legerement differente. Le plus simple c'est donc par exemple de faire un truc comme ca:

Bloc de code:
// resultat
$sResultat = '';

// date format mysql yyyy-mm-dd
$sDate = '2006-09-12';

// format qui dit : je veux string de 4 char - string de 2 char - etc...
$sFormat =  '%4s-%2s-%2s';

// hop on recupere tout ca
list($sYear, $sMonth, $sDay) = sscanf( $sDate, $sFormat );

// et on recolle les morceaux
$sResultat = "{$sDay}/{$sMonth}/{$sYear}";

echo $sResultat; // output : 12/09/2006

La page du manuel de sscanf. C'est tres pratique quand tu sais exactement ce qui tu traites.

Si tu n'es pas sur de ce que tu dois traiter comme donnees (ce qui est generalement le cas quand tu as des formulaires et que les gens peuvent entrer n'importe quoi dedans), fait d'abord des verifications, ou utilises des expressions regulieres pour recuperer les bons morceaux.

Bloc de code:
preg_replace( '|(19|20)(\d{2})-(\d{1,2})-(\d{1,2})|', '\3/\2/\1', $sDate );
echo $sDate; // output : 12/09/2006

Hop, le manuel de preg_replace.

Enjoy ;D
 
  • J’aime
Réactions: .Steff
Wouhaouuuuuuu. J'ai pas trop capter l'histoire du preg_replace mais alors pour ce qui est du premier code ben dis donc merci beaucoup !!! Ca marche niquel, c'est simple efficace, du bon code j'ai l'impression.
Merci beaucoup M'sieur :up:
 
Ca y est c'est terminé. Tout est fini pour ce BTS... Reste plus qu'à prier pour que je l'ai et en attendant les resultats, c'est quand même les vacances !!!
Bonne vacances à ceux qui le sont et courage aux autres!!

:D:D:D:D:D:D:D:D:D:D -> va en vacance :p:D

printf()
sprintf()
sscanf()
vprintf()
fscanf()

pour les manipulations de string (dommage ficelle :) )

preg -> perl regular expression le passage obligé

ereg
eregi
preg_grep
preg_match
preg_quote
preg_replace
preg_split

tu peux consulter la function Date qui prend en argument un mask
il y en a d'autres mais c'est pour illustrer


:zen:
 
Je vais y aller en vacances....Mais je veux d'abord finir ce formulaire et cette gestion des dates en PHP....
Je vais en manger l'année prochaine en plus je pense.
 
Tu peux aussi regarder du coté de srtftime et strtotime, qui convertissent des dates formatées en timestamp unix, et l'inverse.

ex:
$date = "2006-06-15";
echo strftime("%d/%m/%Y", strtotime($date));

devrait te retourner 15/06/2006

(Ca peut meme, si ça t'interesse t'afficher Jeu. pour te dire qu'on était Jeudi :)