Problème avec date

Résolu
Signaler
Messages postés
1132
Date d'inscription
mercredi 28 août 2002
Statut
Membre
Dernière intervention
6 mars 2020
-
Messages postés
1132
Date d'inscription
mercredi 28 août 2002
Statut
Membre
Dernière intervention
6 mars 2020
-
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

Messages postés
116
Date d'inscription
lundi 29 juillet 2002
Statut
Membre
Dernière intervention
19 janvier 2009

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à.
Messages postés
51
Date d'inscription
dimanche 15 août 2004
Statut
Membre
Dernière intervention
16 janvier 2009

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
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,

plus simple :
if(strtotime('now') <= strtotime($date['date_val'])) {
    // ok
}
Messages postés
1132
Date d'inscription
mercredi 28 août 2002
Statut
Membre
Dernière intervention
6 mars 2020
1
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.
Messages postés
2480
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
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).