[php/mysql] probleme de date

nico57 -  
 nico57 -
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...
Configuration: Windows XP
Internet Explorer 7.0

1 réponse

  1. sfel Messages postés 1645 Statut Membre 430
     
    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
    1. nico57
       
      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