Comparaison de dates php

angel_tn -  
angel_tn Messages postés 14 Statut Membre -
Bonjour,
j'ai un problème dans mon code php
je veux comparer 2 dates dont la première récupéré à partir d'une base de donnée mysql mais sous la forme d'un string et non pas une date dd-mm--yyyy, et lautre la date courante moins 7 jours
alors j'ai fais ce code

<?
$date=date("d-m-y",time()-(7*24*60*60));
$djour = explode("-", $date);

$connexion=mysql_connect("localhost","root","");
mysql_select_db("planning")or die("connection impossible");
$id_base= mysql_select_db("planning",$connexion);
if($id_base)
{
$req="select * from bon ";
$res=mysql_query($req);
}

while($tab=mysql_fetch_array($res)){

$datefin=$tab['dateE'];
$dfin = explode("-", $datefin);

if ($djour < $dfin){

echo "<br/>".$tab['dateE'];}
?>


le probleme cé que ce code affiche tout les dates qu se trouves dans ma base et non seulement qui sont supérieur à la date courante moins 7 jours.
merci d'avance pour votre aide
A voir également:

2 réponses

kkz_mil3k Messages postés 108 Statut Membre 13
 
tu devrais convertir des dates en timestamp puis faire tes calculs et convertir dans l'autre sens.
il est plus facile de travailler avec timestamp qu'avec de format xx-xx-xxxx ou xxxx-xx-xx.

++
kkZ
0
angel_tn
 
merci boucoup pour votre réponse
bah j'essay d'utiluser la fonction strtotime pour avoir le nombre de seconde
alors j'ai fais:

if (strtotime($date)< strtotime($tab['dateE'])){

echo "<br/>".$tab['dateE'];}

mais j'ai eu le même problem il m'affiche tout les dates qu se trouvent dans ma base
0
angel_tn Messages postés 14 Statut Membre
 
Bonjour,
Bah j'ai essayé de mettre des echo pour chaque étape, et j'ai trouvé que le problème due à la conversion de la date en seconde

$date=date("d-m-Y",time()-(7*24*60*60));
echo $date; --->02-07-2009

echo $tab['dateE']; ---->28-06-2009

echo "<br/>".strtotime($date); ------->1198969200

echo "<br/>".strtotime($tab['dateE']); ------->2016918000

Alors on remarque que 02-07-2009 >28-06-2007
mais 1198969200<2016918000
0