Comparaison de dates php

Fermé
angel_tn - 9 juil. 2009 à 01:43
angel_tn Messages postés 10 Date d'inscription jeudi 9 juillet 2009 Statut Membre Dernière intervention 11 mars 2010 - 9 juil. 2009 à 14:12
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 96 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 10 août 2009 13
9 juil. 2009 à 02:01
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
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 10 Date d'inscription jeudi 9 juillet 2009 Statut Membre Dernière intervention 11 mars 2010
9 juil. 2009 à 14:12
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

Discussions similaires