Comparaison de dates php

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
Configuration: Windows XP
Firefox 3.0.7

2 réponses

  1. 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
    1. 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
  2. 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