Problème avec date

Résolu
cs_Burnside Messages postés 1132 Date d'inscription mercredi 28 août 2002 Statut Membre Dernière intervention 6 mars 2020 - 26 nov. 2007 à 13:11
cs_Burnside Messages postés 1132 Date d'inscription mercredi 28 août 2002 Statut Membre Dernière intervention 6 mars 2020 - 27 nov. 2007 à 14:12
Bonjour,

Je désirerai savoir comment bien comparer deux dates, car j'ai essayé plusieur scripts mais rien ne va.
Mon souhait :
j'ai dans ma base mysql un champ : date_val = 2007-11-26 format Date.
lorsque j'appelle la page home.php d'abord il vérifié si le membre est bien logé ensuite je souhaite qu'il vérifie la date de validité,
si date du jour est inférieur ou egal à date_val alors c'est ok sinon redicretion vers une autre page.

<?php
$jour = date("d/m/Y");
$time = time();
echo "date du jour : ".$jour;
echo '
';
echo "Time : ".$time;
echo '
';
include ("inc/config.php");

    $req = "SELECT date_val FROM membre WHERE pseudo='guest'";
    $res = mysql_query($req) or die(mysql_error());
    $date = mysql_fetch_array($res);

    $ja = substr($date['date_val'], 6,2  );
    $ma = substr($date['date_val'], 9,2  );
    $aa = substr($date['date_val'], 0 ,4  );

    if (  mktime (0, 0, 0,$ma, $ja, $aa) <= mktime (0, 0, 0, date('m'), date('d'), date('Y') )   ){
        echo 'vous êtes membre';
        echo '
';
        echo "jusqu au :".$date['date_val'];}
    else {
        echo 'Payer votre compte';
        echo '
';
        echo "compte valable jusqu au :".$date['date_val'];
    }
?>

Bàv,
Burnside.

..:: Enjoy living in hell ::..
http://www.art-line.be

5 réponses

cs_Aaron Messages postés 116 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 19 janvier 2009
26 nov. 2007 à 15:58
Bonjour,

Voici ma méthode pour comparer deux dates :

Soit $Date un Timestamp (passé ou futur) récupéré dans ta base de donnée et $Secondes la différence en secondes de $Date avec le moment où le script est executé.

$Secondes = strtotime(date($Date)) - strtotime(date("Y-m-d H:i:s"));

Bien évidemment, si $Secondes > 0, cela signifie que $Date n'est pas encore passé.

Voilà.
3
bilouts Messages postés 51 Date d'inscription dimanche 15 août 2004 Statut Membre Dernière intervention 16 janvier 2009
26 nov. 2007 à 19:20
Salut,

vu que dans ta bdd, tu sauvegarde la date sous la forme 2007-05-20, je te conseille de prendre la date du jour sous la forme $jour = date("Y-m-d");

$compt=time() - (1 * 24 * 60 * 60);//un jour avant ( jour heures minutes secondes)
$dj=date('Y-m-d', $compt);

$dd = explode("-", $dj);
$jour=$dd[2];
$mois=$dd[1];
$annee=$dd[0];

$jour renvoi le jour, ...
Après faut faire pareil avec ta date :


$dd2 = explode("-", $date['date_val'];);
$jour2=$dd2[2];
$mois2=$dd2[1];
$annee2=$dd2[0];

Après il n'y a plus qu'à comparer $jour et $jour2 par exemple
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 nov. 2007 à 20:59
Hello,

plus simple :
if(strtotime('now') <= strtotime($date['date_val'])) {
    // ok
}
3
cs_Burnside Messages postés 1132 Date d'inscription mercredi 28 août 2002 Statut Membre Dernière intervention 6 mars 2020
27 nov. 2007 à 14:12
Re à tous,
un grand merci pour votre aide...
voilà ma solution

<?php
include('inc/config.php');
    $req = "SELECT date_val FROM membre WHERE pseudo='guest'";
    $res = mysql_query($req) or die(mysql_error());
    $date = mysql_fetch_assoc($res);
    $date2 = date('Y-m-d');
    echo $date['date_val'];
    echo '
';
    echo  $date2;
    echo '
';
    if(strtotime($date2) <= strtotime($date['date_val']))
        echo 'Membre valide';
    else
        echo 'Membre non valide';

?>

Bàv,
Burnside.
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
26 nov. 2007 à 13:36
Salut,

Le plus simple est encore de stocker les dates sous forme d'entier, en tant que Timestamp Unix (nombre de secondes écoulées depuis le 1er Janvier 1970). Pour les comparaisons, y'a pas plus simple... Pareil pour tout un tas d'autres opérations sur les dates (calcul d'intervalle, nombre de jours d'écart, etc).
0
Rejoignez-nous