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

  FORUM HardWare.fr
  Programmation
  PHP

  conversion de date

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

conversion de date

n°1529992
juho_05
Shine on you, crazy diamond!
Posté le 17-03-2007 à 20:24:31  profilanswer
 

hello,
 
j'ai dans une variable $datefr une date sous la forme  
 
jj/mm/aaaa
 
je voudrais la convertir simplement pour obtenir une variable $dateus sous la forme  
 
yyyy-mm-dd (format SQL)
 
Comment faire? ;)
Merci d'avance


---------------
"L'imagination est plus importante que le savoir : le savoir est limité, l'imagination fait le tour du Monde" - Albert Einstein
mood
Publicité
Posté le 17-03-2007 à 20:24:31  profilanswer
 

n°1530011
Protohd
Posté le 17-03-2007 à 21:58:16  profilanswer
 

Bonsoir,  
 
A vue de nez je ne connais que deux méthodes (simples).
Ces méthodes on déjas été expliquées sur ce forum, une petite recherche aurait été plus rapide pour toi   :)  
 

Code :
  1. <?PHP
  2. // Voici un format de date Française
  3. $date_fr = '17/03/2007';
  4. // Méthose avec substr
  5. $date_us = substr ($date_fr, 6, 4);
  6. $date_us .= '-';
  7. $date_us .= substr ($date_fr, 3, 2);
  8. $date_us .= '-';
  9. $date_us .= substr ($date_fr, 0, 2);
  10. Echo 'Méthode avec substr : '.$date_fr.' - Se transforme en : '.$date_us.'<br>';
  11. // Méthose avec explode
  12. $date_us = explode ( '/', $date_fr );
  13. $date_us = $date_us[2].'-'.$date_us[1].'-'.$date_us[0];
  14. Echo 'Méthode avec explode : '.$date_fr.' - Se transforme en : '.$date_us.'<br>';
  15. ?>


 

n°1530104
juho_05
Shine on you, crazy diamond!
Posté le 18-03-2007 à 14:43:26  profilanswer
 

Merci beaucoup ;)  :hello:  
 
Honte sur moi, je n'ai même pas pensé à la recherche  :sweat:  
 
 
 :D


Message édité par juho_05 le 18-03-2007 à 14:44:03

---------------
"L'imagination est plus importante que le savoir : le savoir est limité, l'imagination fait le tour du Monde" - Albert Einstein
n°1530140
Shinuza
This is unexecpected
Posté le 18-03-2007 à 18:09:26  profilanswer
 

On ne concatène pas les chaines affichées par echo avec un point  [:pingouino]


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°1530144
RiderCrazy
Posté le 18-03-2007 à 18:19:44  profilanswer
 

Shinuza a écrit :

On ne concatène pas les chaines affichées par echo avec un point  [:pingouino]


 :heink: tu concatènes avec quoi ?

n°1530156
sielfried
Posté le 18-03-2007 à 18:52:20  profilanswer
 

On ne concatène pas, on balance plusieurs arguments à echo à la place (virgule, donc). C'est (probablement) nettement plus performant, donc quand on peut y penser, c'est mieux.
 
(Et d'ailleurs, pendant qu'on y est, si l'on a besoin de construire une longue chaîne sans l'afficher, il est de bon usage de penser au combo ob_start/echo/ob_get_clean.)


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1530157
RiderCrazy
Posté le 18-03-2007 à 18:57:16  profilanswer
 

sielfried a écrit :

On ne concatène pas, on balance plusieurs arguments à echo à la place (virgule, donc). C'est (probablement) nettement plus performant, donc quand on peut y penser, c'est mieux.
 
(Et d'ailleurs, pendant qu'on y est, si l'on a besoin de construire une longue chaîne sans l'afficher, il est de bon usage de penser au combo ob_start/echo/ob_get_clean.)

D'accord, ma remarque porté pas là dessus, mais sur le point en lui même pour la concaténation :o

n°1530190
flo850
moi je
Posté le 18-03-2007 à 20:30:22  profilanswer
 

au passage , il y a plus simple ( avec le expressions régulières )

Code :
  1. if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs))
  2. {
  3.     $date-fr=$regs[3].'-'.$regs[2].'-'.$regs[1];
  4. }
  5. else
  6. {
  7. echo $date,' n est pas un format valide';
  8. }


Message édité par flo850 le 18-03-2007 à 20:30:59
n°1530305
gatsu35
Blablaté par Harko
Posté le 19-03-2007 à 08:16:18  profilanswer
 

elle est mauvaise ta regexp, car là je peux rentrer 2888/99/00 qui n'est pas une date au passage
 
^([0-9]{4})-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$
 
Elle est mieux come cela la bestiole nan :o ?
 donc on garde le premier qui va de 0000 à 9999 (la flème de le changer)
le second fait des groupes de 01 à 09 puis de 10 à 12
le troisième idem : de 01 à 09 puis de 10 à 29 puis 30 ou 31

n°1530307
gatsu35
Blablaté par Harko
Posté le 19-03-2007 à 08:16:48  profilanswer
 

le mieux serait de passer par l'outil date en balancant un mktime et d'autres tralala, mais la gestion des dates en php ca puducu

mood
Publicité
Posté le 19-03-2007 à 08:16:48  profilanswer
 

n°1530341
flo850
moi je
Posté le 19-03-2007 à 09:43:58  profilanswer
 

si tu veux aller par la , ta regexp accepte le 31/02/2009
 
les regexp sont pas fait pour faire du controle numérique ( le pire est de valider une adresse ip en regexp )  
 
la c'est juste du changement de format, donc j'ai considéré que la date etait valide  
 
Mais sinon, d'une manière plus propre, il vaut mieux se faire une petite classe de gestion des dates

n°1530344
rufo
Pas me confondre avec Lycos!
Posté le 19-03-2007 à 09:47:10  profilanswer
 

après cette regexp, il suffit de rajouter un test à base de checkdate() : http://fr.php.net/manual/fr/function.checkdate.php

n°1530365
gatsu35
Blablaté par Harko
Posté le 19-03-2007 à 10:28:56  profilanswer
 

autant directement balancer un coup de checkdate() nan :o

n°1530369
rufo
Pas me confondre avec Lycos!
Posté le 19-03-2007 à 10:33:49  profilanswer
 

gatsu35 a écrit :

autant directement balancer un coup de checkdate() nan :o


 
ben avant faut bien extraire les 3 champs (jj, mm, aaaa) pour pouvoir utiliser cette fonction.


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

  conversion de date

 

Sujets relatifs
[Access] Conversion de date unixtime -> local timezone !!??Query avec conversion de date
SQL conversion d'une date en DATETIME en javaConversion date
[MSSQL] conversion de date / paramètres regionauxconversion de caractère en date sous SQL server
[JAVA] Probleme de conversion de String en Date?conversion str en date ou datetime
conversion date millisecondes -> yyyy-mm-dd hh:ii:ssConversion de date avec MSQUERY
Plus de sujets relatifs à : conversion de date


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