Problème de conversion de format de date....

Problème de conversion de format de date.... - PHP - Programmation

Marsh Posté le 10-08-2003 à 00:10:46    

Je vais chercher une date qui est dans le format "2003 08 10" d'une base de données SQL et j'aimerais la mettre au format "10 08 2003" mais je ne trouve pas la commande....
 
Vous pouvez m'aider svp ?

Reply

Marsh Posté le 10-08-2003 à 00:10:46   

Reply

Marsh Posté le 10-08-2003 à 00:13:47    

Décidément, les questions se suivent et se ressemblent ce soir :pt1cable:  
 
Le mieux est de convertir la date directement dans la requête SQL. Avec MySQL, ca donne ca :
SELECT *, DATE_FORMAT(date, '%d/%m/%Y') AS date_fr FROM ...
qui va ajouter une colonne appellée date_fr dans le résultat de la requête :)

Reply

Marsh Posté le 10-08-2003 à 00:39:15    

Super !!! Ca marche nickel ! Merci beaucoup ! Ca faisait  une pété de temps que je cherchais la solution !

Reply

Marsh Posté le 01-09-2003 à 22:30:11    

je releve ce topic, parce que j'ai justement le meme pb, ou presque...
 
 
voila, dans mon formulaire j'ai trois liste deroulantes (jours/mois/année - c pour une date de naissance), deja j'aimerais bien savoir comment sauvegarder ces données dans le meme champs :ouch: mais aussi, comment affichée cette date normalement, je veux dire au format fr, je pige pas bien ta réponse bebert :pfff:  
 
merci ;)

Reply

Marsh Posté le 01-09-2003 à 23:18:50    

:bounce:  :bounce:  :bounce:

Reply

Marsh Posté le 01-09-2003 à 23:21:27    

KdZ' a écrit :

je releve ce topic, parce que j'ai justement le meme pb, ou presque...
 
 
voila, dans mon formulaire j'ai trois liste deroulantes (jours/mois/année - c pour une date de naissance), deja j'aimerais bien savoir comment sauvegarder ces données dans le meme champs :ouch: mais aussi, comment affichée cette date normalement, je veux dire au format fr, je pige pas bien ta réponse bebert :pfff:  
 
merci ;)

tu fait un implode et tu les met dans ta bdd... >> RTFM
Pour l'affichage, ça dépend de comment tu les enregistre (le format hein...)
 
Edit: implode ou concaténation, au choix


Message édité par RiderCrazy le 01-09-2003 à 23:22:28
Reply

Marsh Posté le 01-09-2003 à 23:34:30    

Oula ! :pt1cable:  
 
un exemple please ? :??:

Reply

Marsh Posté le 01-09-2003 à 23:37:15    

Moi j'avais essayer ça :  :(  
 

Code :
  1. <?php
  2. include("connexion.php" );
  3. $req = mysql_query("SELECT * FROM membres DATE_FORMAT(date_naissance, '%d/%m/%Y') AS date_fr " ) or die('Req. sql error');
  4. $row = mysql_fetch_row($req);
  5. print("$row[12]" );
  6. print("<br /><br />$req" ); //ça c'etait juste histoire de voir ce que ma requete...
  7. ?>


 
mais ça doit pas être ça dutout :sweat:  
 
 :hello:

Reply

Marsh Posté le 01-09-2003 à 23:40:08    

KdZ' a écrit :

Oula ! :pt1cable:  
 
un exemple please ? :??:  

c'est vraiment tout con, le plsu simple, la concaténation:

Code :
  1. <?php
  2. $date = $jour."/".$mois."/".$annee;

et voilou...
$date va t'afficher par exemple : 01/09/2003 si tu as mis 01 pour $jour, 08 pour $mois et 2003 pour $annee
 
Edit: c'était pas vraiment ça que tu voulais...


Message édité par RiderCrazy le 01-09-2003 à 23:40:52
Reply

Marsh Posté le 01-09-2003 à 23:43:01    

KdZ' a écrit :

Moi j'avais essayer ça :  :(  
 

Code :
  1. <?php
  2. include("connexion.php" );
  3. $req = mysql_query("SELECT * FROM membres DATE_FORMAT(date_naissance, '%d/%m/%Y') AS date_fr " ) or die('Req. sql error');
  4. $row = mysql_fetch_row($req);
  5. print("$row[12]" );
  6. print("<br /><br />$req" ); //ça c'etait juste histoire de voir ce que ma requete...
  7. ?>


 
mais ça doit pas être ça dutout :sweat:  
 
 :hello:  


 :heink: J'arrive pas à comprendre ce que tu veux faire ??

Reply

Marsh Posté le 01-09-2003 à 23:43:01   

Reply

Marsh Posté le 01-09-2003 à 23:52:09    

Voila, en faite la partie de mon formulaire d'où je recup les données, c juste depuis 3 liste deroulantes (select)
1 pour le jour, la 2eme pour le mois et la 3eme pour l'année de naissance.
 
http://pim.asso.fr/stkge/upload/fichiers/form1.png
 
 
Et ensuite pour afficher la date je faisait un bete print("$row[0] / $row[1] / $row[1]" );
 
en admettant que les row[0 1 et 2] soient le resultat des 3 listes du formulaire.
 
alors je c c completement idiot, je voulais donc un moyen d'enregistrer (dans le formulaire) la date de naissance du membre au format 00-00-0000 (fr quoi) mais deja comment etre sur que la date sera vraiment rentrée comme cela, ensuite, une fois dans la bdd, il me faudrait reaffiché cette date de naissance...
 
j'avoue avoir un peu de mal  :lol:


Message édité par KdZ' le 01-09-2003 à 23:59:41
Reply

Marsh Posté le 02-09-2003 à 00:25:52    

:bounce:

Reply

Marsh Posté le 02-09-2003 à 09:36:06    

Benh comme dit plus haut, pour l'enregistrement, tu fais une concaténation:

Code :
  1. $date = "$jour/$mois/$annee";

Tu peux enregistrer cela dans un varchar directement en format fr et pour l'affichage c'est un simple select

Reply

Marsh Posté le 02-09-2003 à 09:56:55    

Quelle est la meilleur methode ? comment t'aurais fait toi ?

Reply

Marsh Posté le 02-09-2003 à 10:12:52    

KdZ' a écrit :

Quelle est la meilleur methode ? comment t'aurais fait toi ?

Benh ça dépend un peu du site en question... je pense qu'un enregistrement de la date dans un type date de mysql est un peu mieux car lors de l'affichage sur un site multilingue, tu pourras changer sont format seulement avec un setlocale et puis cela reste le format qui correspond le mieux pour une date même si des traitement sont à éffectuer avant et/ou après [:spamafote].
A toi de voir un peu les différentes possibilité et celle qui te convient le mieux >> RTFM

Reply

Marsh Posté le 02-09-2003 à 10:37:58    

eh bien on oublie d'utiliser mon super smiley, ou c'est pour ne pas me reverser de royalties ? :D
 
 [:sh@rdar]  


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 02-09-2003 à 10:39:07    

Sh@rdar a écrit :

eh bien on oublie d'utiliser mon super smiley, ou c'est pour ne pas me reverser de royalties ? :D
 
 [:sh@rdar]  
 

Mon sauveur :love:
Je me souvenait plus du code :whistle:

Reply

Marsh Posté le 02-09-2003 à 10:49:31    

je prefere faire comme ça, je veux dire, un seul champs date...
mais je reviens toujours à mon pb [:atreyu]


Message édité par KdZ' le 02-09-2003 à 10:50:00
Reply

Marsh Posté le 02-09-2003 à 10:52:31    

Sh@rdar !! Je te le laisse...
[:neowen]

Reply

Marsh Posté le 02-09-2003 à 10:54:44    

RiderCrazy a écrit :

Sh@rdar !! Je te le laisse...
[:neowen]


 
 
 :non: reviens par là toi  :o  
 
 :D (j'vé quand meme pas me deme*** tout seul :(  :??: )

Reply

Marsh Posté le 02-09-2003 à 10:56:21    

KdZ' a écrit :


 
 
 :non: reviens par là toi  :o  
 
 :D (j'vé quand meme pas me deme*** tout seul :(  :??: )

[:sh@rdar] avec un lien en prime dessus :sol:

Reply

Marsh Posté le 02-09-2003 à 11:07:53    

en fait si tu peux partir :o  
 
si je demande de l'aide c'est que j'ai deja chercher pas mal de mon coter et nexen j'ai deja vu (je me sert de leur doc...)

Reply

Marsh Posté le 02-09-2003 à 13:58:43    

:pfff:  :pfff:  :pfff:

Reply

Marsh Posté le 02-09-2003 à 14:10:52    

KdZ' a écrit :


alors je c c completement idiot (1), je voulais donc un moyen d'enregistrer (dans le formulaire) la date de naissance du membre au format 00-00-0000 (fr quoi)(2) mais deja comment etre sur que la date sera vraiment rentrée comme cela(3), ensuite, une fois dans la bdd, il me faudrait reaffiché cette date de naissance...(4)
 
j'avoue avoir un peu de mal  :lol: (5)


1/ oui
2/ Concaténation de variables, type de champ mysql "varchar", et tu fais un "insert" dans un "mysql query"
3/ Si tu utilises un formulaire tel que celui-ci et que c'est toi qui fait la concaténation, c'est toi qui va définir la forme de ta date (en l'occurence jj/mm/aaaa)
4/ un simple select... si tu as fait comme dit précédemment, tu n'auras aucun formatage à faire.
5/ je vois bien mais c'est la base... cherche un peu et n'attends pas que ça tombe tout cuit. Tu remarqueras certainement que je ne t'ai mis aucun script mais seulement des focntions et des pistes à étudier... la théorie quoi, à toi de faire la pratique, ponds nous un code et si ça bloque tu repasses
 :hello:

Reply

Marsh Posté le 02-09-2003 à 18:01:29    

c sympas, je vais essayer ;)

Reply

Marsh Posté le 03-09-2003 à 11:07:25    

ouarf, c chaud, je vais encore essayer ce soir, si j'arrive pas je posterais mon code...
++ ;)

Reply

Marsh Posté le 05-09-2003 à 00:29:45    

Perso, j'utlise 2 fonctions très connes :  
 

Code :
  1. // Transforme la date US (yyyy-mm-dd) en date francaise (jj/mm/aaaa)
  2. function dateUs2Fr ($dateUs)
  3. {
  4. $tabDate = explode("-", $dateUs);
  5. $dateFr = $tabDate[2]."/".$tabDate[1]."/".$tabDate[0];
  6. return $dateFr;
  7. }
  8. // Transforme la date francaise (jj/mm/aaaa) en date US (yyyy-mm-dd)
  9. function dateFr2Us ($dateFr)
  10. {
  11. $tabDate = explode("/", $dateFr);
  12. $dateUs = $tabDate[2]."-".$tabDate[1]."-".$tabDate[0];
  13. return $dateUs;
  14. }


 
C'est peut etre pas le meilleur moyen, mais ca marche nickel.
Stocke ta date au format date de MySQL, c'est mieux pour des recherches apres ou des tris ou plein de trucs ....
 
Je te donnes le code parce que tu y arrive pas. Mais comprends le avant de le reprendre tout fait (a le limite fait pas de copier/coller et refais le toi meme).
Et si la tu dis que tu as encore du mal, arrete le PHP, c'est peut etre méchant mais il faut dire ce qui est.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed