[php/mysql] probleme de date
nico57
-
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
et j'aimerais pouvoir effectuer cette comparaison dans une requete sql
si vous pouviez m'aider ca serai sympa .je susi en stage actuellement et mon projet est déja en retard...
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:
- [php/mysql] probleme de date
- Easy php - Télécharger - Divers Web & Internet
- Airpods 3 date de sortie - Guide
- Mysql community download - Télécharger - Bases de données
- Jm date désabonnement ✓ - Forum Consommation & Internet
- Jm date avis - Forum Consommation & Internet
1 réponse
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
pour avoir la date actuelle de ton serveur c'est now() ou sysdate()
exemple : comparaison d'une date avec auj8
Je rapelle que ca retourne un nombre de jour.
Une recherche de ces fonctions sur google te donnera plus de details
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
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