[php/mysql] probleme de date

Fermé
nico57 - 26 juin 2008 à 10:02
 nico57 - 26 juin 2008 à 10:20
Bonjour,
Dans le cadre de mon application (php/mysql) je suis ammené à comparer des dates.
Une sous la forme aaaa-mm-jj c'est à dire le modele americain éffectif sous mysql et deux autre dates que je genere automatiquement dans mon programme sous la forme jj/mm/aaaa.
J'aimerais pouvoir comparer c'est date afin de selectionner que certaine date dasn ma base de donnée

ca sera plus simple avec le code

ce code si permet de généré automatiquement 2 date correspondant au début et à la fin d un trimestre d'une date donné en paramètre
$date_explosee = explode("/", $date);

$jour = $date_explosee[0];
$mois = $date_explosee[1];
$annee = $date_explosee[2];
if (($mois=='01')||($mois=='02')||($mois=='03')) {
	
	$date1 = date('d/m/Y',mktime(0,0,0,1,1,$annee));  //Début du premier trimestre                                                                       
                                                            
	$date2 = date('d/m/Y',mktime(0,0,0,4,0,$annee)); //fin du premier trimestre
	$trim ="trimestre1";
	$datedeb=$date1;
	$datefin=$date2;
                                                           }
Elseif (($mois=='04')||($mois=='05') || ($mois == '06')){
	
	$date3 = date('d/m/Y',mktime(0,0,0,4,1,$annee)); ///début du deuxième timestre
                                                                            
	$date4 = date('d/m/Y',mktime(0,0,0,7,0,$annee)); //fin du  deuxième  timestre
               $trim ="trimestre2";
			   $datedeb=$date3;
			   $datefin=$date4;
			   }
Elseif (($mois=='07')||($mois=='08') || ($mois =='09')){
	
	$date5 = date('d/m/Y',mktime(0,0,0,7,1,$annee)); //début du troisième timestre
                                                                            
	$date6 = date('d/m/Y',mktime(0,0,0,10,0,$annee)); //fin du  troisième timestre
						$trim ="trimestre3";
					$datedeb=$date5;
					$datefin=$date6;
						}
Elseif (($mois=='10')||($mois=='11') || ($mois == '12')){
	
	$date7 = date('d/m/Y',mktime(0,0,0,10,1,$annee)); //début du 4eme  timestre
                                                                                   
	$date8 = date('d/m/Y',mktime(0,0,0,13,0,$annee)); // fin du  troisième trimestre		
                       $trim ="trimestre4";
					   $datedeb=$date7;
						$datefin=$date8;
					   
				  }  


et j'aimerais pouvoir effectuer cette comparaison dans une requete sql

$requete = " SELECT * FROM glpi_tracking
		where {(date>>$datedeb) // compare la date du tableau à la date de début et fin
		and (date<<$datefin)";      //  de trimestre. Seulement elle ne sont pas au même format
                                                                       //  voile le soucis 


si vous pouviez m'aider ca serai sympa .je susi en stage actuellement et mon projet est déja en retard...
A voir également:

1 réponse

sfel Messages postés 1640 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 15 juillet 2009 430
26 juin 2008 à 10:09
bonjour,
oki alors je te conseil d'utimliser la fonction sql datediff() ou diffdate() en fonction de ton serveur
elles marchent toutes les 2 pareil

datediff( date1, date2)

elle te retournera le nb de jour de différence entre la premiere et la deuxieme comme si tu avant fait date1 - date2

après si tu veux tester si la date1 est inférieure (antérieure) à la date2
WHERE datediff( date1, date2) < 0;


pour avoir la date actuelle de ton serveur c'est now() ou sysdate()

exemple : comparaison d'une date avec auj8
WHERE datediff( now(), date2) < 0;


Je rapelle que ca retourne un nombre de jour.
Une recherche de ces fonctions sur google te donnera plus de details
1
Merci sfel pour la rapidité de ta réponse

seulement je me demande si le fait d'avoir une date sous la forme jj/mm/aaaa et une autre sous la forme aaaa-mm-jj ne va pas empecher justement la comparaison ou la différence comme tu le suggere dans ton précédent message .

si qulqu un pouvait m'éclairer

d'avance merci
0