Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
918 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU]converstion AAAA-MM-JJ en JJ-MM-AA

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU]converstion AAAA-MM-JJ en JJ-MM-AA

n°1320307
infoman64
JE SUIS LA POUR TOI MON AMI
Posté le 07-03-2006 à 16:37:17  profilanswer
 

bonjour je cherche ude l'aide pour me permettre de transformer mon format de date
qui est AAAA-MM-JJ en JJ-MM-AAAA
merci de votre aide


Message édité par infoman64 le 07-03-2006 à 17:37:42
mood
Publicité
Posté le 07-03-2006 à 16:37:17  profilanswer
 

n°1320312
flock86
oh non les gars pas le slip!
Posté le 07-03-2006 à 16:40:55  profilanswer
 

'lut...
bon moi je suis une quiche, mais je vais te dire comment je fais...
après d'autres te donnerons surement une autre solution.
 
tu fais un explode pour ta variable date. tu mets comme séparateur "-".
tu vas te récupérer trois variables (année , mois et jour)
enfin,
tu crées une variable concaténée :
 variable = var(jour).' -' .var(mois).'-'. var(année);
 
voilou!!


Message édité par flock86 le 07-03-2006 à 16:41:46
n°1320313
josserand_​joss
Posté le 07-03-2006 à 16:41:46  profilanswer
 

J'ai créer ces 2 fonctions... si ça peut t'aider.
 

Code :
  1. //fonction qui permet de convertir une date format JJ/MM/AAAA en format AAAA-MM-JJ (compatible date MySQL)
  2. function convertDateFrMysql($date_fr)
  3. {
  4.   //supprime les espaces en début et fin de saisie
  5.   $date_fr = trim($date_fr);
  6.   //remplace les slashs par des traits-d'union
  7.   $date_fr = ereg_replace("[/]","-", $date_fr);
  8.   //sépare les éléments de la date
  9.   $tabdate_fr = explode('-',$date_fr);
  10.   //format : $timestamp = mktime($heure, $minute, $seconde, $mois, $jour, $annee);
  11.   //affiche le nb de secondes depuis le 01-01-1970
  12.   $ts_date = mktime(0, 0, 0, $tabdate_fr[1], $tabdate_fr[0], $tabdate_fr[2]);
  13.   //mise en forme de la date format MySQL
  14.   $date_mysql = date("Y-m-d", $ts_date);
  15.   return $date_mysql;
  16. }
  17. //fonction qui permet de convertir une date format AAAA/MM/JJ en format JJ-MM-AAAA (compatible date française)
  18. function convertDateMysqlFr($date_mysql)
  19. {
  20.   //supprime les espaces en début et fin de saisie
  21.   $date_mysql = trim($date_mysql);
  22.   //remplace les slashs par des traits-d'union
  23.   $date_mysql = ereg_replace("[/]","-", $date_mysql);
  24.   //sépare les éléments de la date
  25.   $tabdate_mysql = explode('-',$date_mysql);
  26.   //format : $timestamp = mktime($heure, $minute, $seconde, $mois, $jour, $annee);
  27.   //affiche le nb de secondes depuis le 01-01-1970
  28.   $ts_date = mktime(0, 0, 0, $tabdate_mysql[1], $tabdate_mysql[2], $tabdate_mysql[0]);
  29.   //mise en forme de la date format MySQL
  30.   $date_fr = date("d-m-Y", $ts_date);
  31.   return $date_fr;
  32. }

n°1320314
anapajari
s/travail/glanding on hfr/gs;
Posté le 07-03-2006 à 16:42:44  profilanswer
 

oui bon sinon tu as l'option tu lis la doc et tu utilises les fonctions toutes faites...
strftime et stroftime


Message édité par anapajari le 07-03-2006 à 16:44:32
n°1320315
flock86
oh non les gars pas le slip!
Posté le 07-03-2006 à 16:43:02  profilanswer
 

bon bah voilà...
du tout cuit du tout propre...
que demander de plus?

n°1320329
josserand_​joss
Posté le 07-03-2006 à 17:00:27  profilanswer
 

En effet anapajari, j'aurais pu faire plus simple.

n°1320357
anapajari
s/travail/glanding on hfr/gs;
Posté le 07-03-2006 à 17:18:18  profilanswer
 

en fait c'est pas vraiment plus simple :o
stroftime ne prend pas les chaines par defaut avec le -, il lui faut des slashs donc faut faire un replace. Alors bon s'il est sur de ses dates autant les tripatouiller directement.
 
Cela devient vraiment interessant en utilisant mktime:

Code :
  1. $a = "12/31/2001";
  2. $t = split('/', $a);
  3. print strftime("%d-%m-%Y",mktime(0,0,0,$t[0],$t[1],$t[2]));


qui donne

Code :
  1. 31-01-2002


Pourquoi c'est mieux? parce que si la date est "érronée" le truc s'en sort tout seul. Par exemple pour "12/32/2002", cela donne:

Code :
  1. 01-01-2003


Et qu'a la limite on peut même passer des chiffres négatifs: "02/-33/2006"

Code :
  1. 30-12-2005


Message édité par anapajari le 07-03-2006 à 17:20:22
n°1321725
the_bigboo
Posté le 09-03-2006 à 12:46:34  profilanswer
 

ben moi je fais plus simple :p

Code :
  1. function ReverseDate($Date)
  2. {
  3. return implode('-',array_reverse(explode('-',str_replace('/','-',$Date)))) ;
  4. }


Et ca marche dans les deux sens ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [RESOLU]converstion AAAA-MM-JJ en JJ-MM-AA

 

Sujets relatifs
[RESOLU] probleme avec le lower_bound d'un vector de classes[Resolu][Vérification de doublon dans la BDD
[PHP] Calcul avec des nb a virgules [RESOLU]Probleme de variables ... [résolu]
[Resolu] Utiliser gsoap avec Eclipse [résolu] trouver l'adress IP
[PHP] Boucle do while() a condition multiples (résolu)[PHP] erreur introuvable (résolu)
Pseudo Frames [resolu]Dossiers Virtuels sous Wamp [résolu]
Plus de sujets relatifs à : [RESOLU]converstion AAAA-MM-JJ en JJ-MM-AA


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR