connaitre si une date est plus grande qu'une autre

Mammouth du PHP | 1353 Messages

21 août 2008, 17:25

$ecart=mktime(0, 0, 0, $jour_debut, $mois_debut, $annee_debut)-time();


Si cette valeur la est négative, ça veut dire que la date du champ est plus grande que celle du jour... Si tu veux un nombre positif il faut donc inverser les membres de l'opération, et faire "date du jour" - "date_saisie".

Par contre, comme exprimé précedemment, pour moi la comparaison se fait avec un mktime de 1972 mais je me trompe peut etre...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Mammouth du PHP | 2937 Messages

21 août 2008, 19:02

J'ai essayé de lire sur mktime mais j'arrive tjs pas à m'en sortir :cry:
Dans cette fonction, le paramètre mois passe avant le paramètre jour.
$annee_debut = "2005"; 
$mois_debut = "08"; 
$jour_debut = "13"; 


$ecart = time () - mktime (0, 0, 0, $mois_debut, $jour_debut, $annee_debut); 

$deuxans = mktime (0, 0, 0, 0, 0, 2); 


if ($ecart >= $deuxans) echo 'ok';

Eléphant du PHP | 248 Messages

21 août 2008, 19:26

Bonjour merci pour vos réponses.


Victor BRITO > j'ai mis le code que tu m'as dit mais j'ai tjs une page blanche :(

Eléphant du PHP | 185 Messages

22 août 2008, 06:28

Par contre, comme exprimé précedemment, pour moi la comparaison se fait avec un mktime de 1972 mais je me trompe peut etre...
Non, tu as tout à fait raison. mktime(0,0,0,0,0,2) renvoit le timestamp du.... 31 décembre 2001 (pas sûr, mais possible) ! Oui, car l'année 2 est interprétée comme 02, soit 2002 (les années sont comprises entre 1970 et 2038). De plus, le jour 0 n'existe pas, donc ça revient au mois d'avant, idem pour le mois 0.

Il faut bien sûr prendre le timestamp du 1er janvier 1972, soit mktime(0,0,0,1,1,72);

Sinon, ça revient au même de prendre le nombre de secondes qui se sont écoulées en 2 ans, soit 63072000 secondes.