Page 1 sur 2

connaitre si une date est plus grande qu'une autre

Posté : 21 août 2008, 13:23
par moileraz
Bonjour j'ai un petit souci avec des dates.

j'ai la date du jour et une date qu'un utilisateur a rentré dan un formulaire

j'aimerai savoir si la date que l'utilisateur a rentré est deux ans en moin que la date du jour

auriez vous une solution s'il vous plait

merci beaucoup pour votre aide

Posté : 21 août 2008, 13:48
par jojolapine
Il te faut utiliser mktime(), qui retournera un entier (timestamp) à partir de tes dates, donc tu faits
<?php
if(mktime(...)>mktime(...)){
    //blablabla
}
?>

Posté : 21 août 2008, 13:56
par moileraz
merci pour ta reponse mais en ce qui concerne les 2 ans minimum

je fais comment

merci d'avance

Posté : 21 août 2008, 14:01
par jojolapine
Hum...
Je n'ai pas trop compris ta réponse...
Tu veux dire que tes dates on au minimum deux ans d'écart?
Si oui, où est le problème?

Posté : 21 août 2008, 14:12
par moileraz
oui enfait

si je fait
if(mktime(...)>mktime(.....)){

}

par exemple 2008-07-01 est plus grand que 2008-05-01 mais la ca fait deux mois d'ecart.

Enfait il faut que l'ecart entre la date du jour et la date de l'utilisateur sois 2ans ou plus

enfait ma question c'est comment validé que l'ecart est bien de 2 ans ou plus

merci pour tes reponses

Posté : 21 août 2008, 14:17
par jojolapine
Ok, j'ai compris alors c'est pas très compliqué, en fait, tu fait comme ça:
<?php

$ecart=mktime(/*donnée formulaire*/)-time(); // ça c'est ton écart de date, faut peut-être inversé, les deux partie mais bon ça c'est à toi de voir...

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

if($ecart>$deuxans){
    //blablabla
}
Voilà, c'est dans cet ordre d'idée ;)

Posté : 21 août 2008, 14:24
par moileraz
merci beaucoup pour ton aide alors j'ai ce code :


$annee_debut="2005";
$mois_debut="08";
$jour_debut="13";


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

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


if($ecart>=$deuxans){
echo "ok";
}
Mais ca m'affiche une page blanche

Posté : 21 août 2008, 14:25
par jojolapine
alors si tu fait un var_dump($ecart), je pense que tu auras une surprise ;)

Posté : 21 août 2008, 14:30
par moileraz
OUps j'ai eu une réponse bizare


int(-116861336)

Posté : 21 août 2008, 14:31
par jojolapine
Donc qu'est-ce que tu en déduit?

Posté : 21 août 2008, 14:32
par moileraz
j'en déduit que j'ai fait une connerie quelques part :(

Posté : 21 août 2008, 14:33
par Sékiltoyai
Relis la documentation de mktime()…

Posté : 21 août 2008, 14:45
par jojolapine
// ça c'est ton écart de date, faut peut-être inversé, les deux partie mais bon ça c'est à toi de voir...

Posté : 21 août 2008, 14:53
par guilt92
Excusez moi de m'immiscer, mais :
$deuxans=mktime(0,0,0,0,0,2); 
Ca me parait faux, quand on sait que le timestamp commence le 01/01/1970, pour moi :
$deuxans=mktime(0,0,0,01,01,1972); 
Si je me trompe, peut on m expliquer pourquoi ?

Posté : 21 août 2008, 16:42
par moileraz
J'ai essayé de lire sur mktime mais j'arrive tjs pas à m'en sortir :cry: