ruicosta Posté 18 Mai 2004 Partager Posté 18 Mai 2004 bonjour a tous . dans un formulaire j ai un champs pour mettre une date , et je precie dans le champs que elle doit etre sous la forme jj/mm/aaaa. mais au niveau de ma table ds ma bdd la date est definie autant que 0000-00-00. ma question: est ce qui il ya un moyen de convertir la date jj/mm/aaaa en la forme de ma table ou bien la magie SQL peut resoudre le probleme? sinon je vais opter pour une solution plus simple . merci d'avance. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 18 Mai 2004 Partager Posté 18 Mai 2004 Salut Ruicosta, Tu ne précises pas si tu as PHP à disposition. Mais si c'est le cas, un simple ereg_replace suffit. Essayes-ceci: <?php$date="26/03/1951";$datesql=ereg_replace("([0-9]{2})/([0-9]{2})/([0-9]{4})","\\3-\\2-\\1",$date);echo $datesql;?> Dan Lien vers le commentaire Partager sur d’autres sites More sharing options...
ruicosta Posté 18 Mai 2004 Auteur Partager Posté 18 Mai 2004 merci DAN ca marche et ca me fait plaisir . mais ca te derrange pas si tu m explique un peu le fonctionnement. je sais que c'est trop demandé surtout a une heure pareille . et pour ne pas oublier ;je programme en php. merci encore une fois. Lien vers le commentaire Partager sur d’autres sites More sharing options...
ruicosta Posté 18 Mai 2004 Auteur Partager Posté 18 Mai 2004 c bon je pence que j ai compris le truk merci a toi DAN . Lien vers le commentaire Partager sur d’autres sites More sharing options...
ruicosta Posté 18 Mai 2004 Auteur Partager Posté 18 Mai 2004 resalut DAN . je voulais essayer le meme principe pour convertir dans l autre sens cad de la forme 0000-00-00 a celle de jj/mm/aaaa. mais j y arrive pas alors tu fera comment ? merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
ruicosta Posté 18 Mai 2004 Auteur Partager Posté 18 Mai 2004 <?$date="2001-02-02";$datesql=ereg_replace("([0-9]{4})-([0-9]{2})-([0-9]{2})","\\3/\\2/\\1",$date);echo $datesql;?> c bon j aiessayé ca et ca marche. c t une question de logique. merci encore une fois . Lien vers le commentaire Partager sur d’autres sites More sharing options...
ruicosta Posté 18 Mai 2004 Auteur Partager Posté 18 Mai 2004 encore une chose est ce qu on peu convertir les dates avec une requete cad je cherche la commande SQL. merci . Lien vers le commentaire Partager sur d’autres sites More sharing options...
ruicosta Posté 18 Mai 2004 Auteur Partager Posté 18 Mai 2004 <? $select = "SELECT DATE_FORMAT(date,'%d/%m/%Y') AS date FROM concours_stats"; $query = mysql_query($select); $res=mysql_fetch_array($query); echo $res["date"];?> c bon j ai encore trouvé . mais la plus j avance ds mon programme plus je rencontre de petits problemes. Ma question: ds une boucle if je voudrai avoir comme condition une verification de date cad: if ( la date du champs corresponde au format jj/mm/aaaa) {... ? merci. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 18 Mai 2004 Partager Posté 18 Mai 2004 Ruicosta, J'ai honte d'interrompre ton quasi monologue preg_match est ton ami pour faire un test sur les dates: <?php$date="26/03/1951";if (preg_match("#^([0-9]{2})\/([0-9]{2})\/([0-9]{4})$#",$date))print "OK";elseprint "mauvais format";?> Dan Lien vers le commentaire Partager sur d’autres sites More sharing options...
ruicosta Posté 18 Mai 2004 Auteur Partager Posté 18 Mai 2004 ca marche DAN. merci . just une chose a rajouter , le php je l ai apris sur ce forum Lien vers le commentaire Partager sur d’autres sites More sharing options...
ruicosta Posté 19 Mai 2004 Auteur Partager Posté 19 Mai 2004 rebonjour a tous j ai encore 2 questions c que mon programme verifie la forme jj/mm/aaaa. mais si le mec entre 10/02/0000 par exemple ca marchera tjs . 1) alors je voudrai savoir si on peut virer des dates de ce genre ou bien existe il un moyen de limiter les jj et mm et aaaa dans des intervalle? 2) est ce que je peut faire if (preg_match("#^([0-9]{2})\/([0-9]{2})\/([0-9]{4})$#",$date1) <= preg_match("#^([0-9]{2})\/([0-9]{2})\/([0-9]{4})$#",$date2)){...} merci. Lien vers le commentaire Partager sur d’autres sites More sharing options...
ruicosta Posté 19 Mai 2004 Auteur Partager Posté 19 Mai 2004 <?$champ_date="5-09-1999";$explode=explode("-",$champ_date);$jour = $explode['0'];$mois = $explode['1'];$annee = $explode['2'];echo "Jour =".$jour;echo "<br>Mois =".$mois;echo "<br>Annee =".$annee;if ($jour<0||$jour>31)echo "<br>La variable jour n'est pas valide.";if ($mois<0||$mois>12)echo "<br>La variable mois n'est pas valide.";if ($annee<1999||$annee>2004)echo "<br>La variable annee n'est pas valide.";?> voila j'ai déja trouvé la réponse c'est sur Forum Webmaster Hub -> Création et exploitation de Sites Internet -> Les langages du Net -> Asp, Java, Cfm, ... dans vérification d'une date.@+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
-ZN- Posté 19 Mai 2004 Partager Posté 19 Mai 2004 Essayons d'aborder ton probleme sous un autre angle: Tu peux sinon utiliser des combo boxes html, tu verifies le contenu en Javascript ... attends je dois avoir ca dans ma bibliotheque function validDate(day,month,year){indic=0if ( month=="" || day=="" || year=="") {indic=1}if ( (month==4 || month==6 || month==9 || month==11) && day == 31) // 30 days months {indic=1}if (month==2 && (year % 4)!=0 && day > 28) // non bissextile {indic=1}if (month==2 && (year % 4)==0 && day > 29) // bissextile {indic=1}return(indic) }Si indic==0 ta date est valide! sinon elle est fausse, tu ne lances pas ton form.submit() mais un alert("veuillez modifier la date svp") Puis tu changes le format de ta date avec une autre fonction Javascript du style: function returnDate(day, month, year){myDate= (year + "-" + month + "-" + day) return myDate } tu stockes cette valeur dans une variable de type "hidden" lorsque tu submit() ton formulaire la date est prete a etre stockee dans ta base mysql puis dans l'autre sens si tu veux convertir une date mysql en language comprehensible (arf) tu utilises 2 p'tites fonctions php du style: function convertMonthFormat($m){if($m==1){ return "Jan";}if($m==2){ return "Feb";}if($m==3){ return "Mar";}if($m==4){ return "Apr";}if($m==5){ return "May";}if($m==6){ return "Jun";}if($m==7){ return "Jul";}if($m==8){ return "Aug";}if($m==9){ return "Sep";}if($m==10){ return "Oct";}if($m==11){ return "Nov";}if($m==12){ return "Dec";}}//Changes the date format yyyy-mm-dd -> dd mmm yyyyfunction convertDate($myDate){list($year, $month, $day) = split("-", $myDate, 3);$textMonth=convertMonthFormat($month);$newDate=$day." ".$textMonth." ".$year;return $newDate;} Voili voilou, attention c'est du code 100% maison y'a p'tet des erreurs bon courage dans ton aprentissage! Lien vers le commentaire Partager sur d’autres sites More sharing options...
ruicosta Posté 21 Mai 2004 Auteur Partager Posté 21 Mai 2004 Merci -ZN- je suis sur que tout les débutants comme moi qui vont passés par la ,vont beaucoup apprendre . Merci à tous. Lien vers le commentaire Partager sur d’autres sites More sharing options...
-ZN- Posté 21 Mai 2004 Partager Posté 21 Mai 2004 Heu ... c'est assez comprehensible mes explications? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant