Comparer deux dates

Résolu
jordxn Messages postés 356 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,

Je n'arrive pas a comparer la date inscrite par le visiteur de mon site avec celle d'aujourd'hui :

$date_limite=$_POST['date_limite'];
$now_date=date('d/m/y');
echo $date_limite;
echo $now_date;
if($date_limite>$now_date){
.....
}else{
echo "erreur";
}

les echo m'affichent pourtant :

27/12/1994
16/01/2013

qu'importe la date limite cela m'affiche toujours erreur :(

Merci de m'aider

3 réponses

ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
Salut

tu essayes de comparer des chaines de caractères, c'est normal que le résultat n'ait pas de sens.
0
jordxn Messages postés 356 Date d'inscription   Statut Membre Dernière intervention   1
 
Et donc je peux faire comment svp ?
0
Utilisateur anonyme
 
Si PHP peut comparer des dates avec séparateur comme si c'était des entiers.
Seulement il interprète 27/12/1994 comme 27 121 994 et 16/01/2013 : 16 012 013 : du coup ici la date la plus récente est la plus petite. Si tu inverses le format de tes dates comme ça : annee/mois/jour la comparaison fonctionnera.

Résolu? ===> [RESOLU]
0
jordxn Messages postés 356 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour,
Sauf qu'en inversant
$now_date=date('y/m/d');

le echo devient :
13/04/16

et datelimite : 2013/01/17

donc sa marche tjr pas
0
Utilisateur anonyme
 
? J'ai pas tout compris, tu as certaines année sur 2 chiffre et d'autre sur 4? Faudrait uniformiser un peu les formats que tu utilises.

Si date limite est 2013/01/17 et l'autre 2013/04/16 , if ('2013/01/17' > '2013/04/16') est faux car le 16 avril c'est plus "récent" (plus avancé dans l'année) que le 1er janvier ça me parait normal.
Par contre avec les deux dates que tu as mi en exemple le if sera vrai et tu n'auras pas "erreur" à l'affichage

Résolu? ===> [RESOLU]
0
jordxn Messages postés 356 Date d'inscription   Statut Membre Dernière intervention   1
 
Je m'exprime mal,
Pour la date du jour je voudrais 4 chiffres pour les annéeset non deux
$now_date=date('y/m/d');
0
Utilisateur anonyme
 
y en majuscule je crois : $now_date=date('Y/m/d'); pour avoir 4 chiffres à l'année
0
jordxn Messages postés 356 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci sa a marché.
Mais j'ai toujours le meme soucis :
Date d'ajd : 2013/04/16
Date limite : 2013/04/17
Donc normalement ya pas d'erreur sauf que si...
0
Utilisateur anonyme
 
Vérifie bien tes variables , ton code avec ces dates fonctionne chez moi
0
jordxn Messages postés 356 Date d'inscription   Statut Membre Dernière intervention   1
 
if(preg_match("#([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})#",$_POST['datelimite']))
{
$proprietaire=htmlentities($_SESSION['username']);
$intitule=htmlentities($_POST['intitule']);
$resume=htmlentities($_POST['resume']);
$datelimite=htmlentities($_POST['datelimite']);
$priorite=htmlentities($_POST['priorite']);
$now_date=date('Y/m/d');
echo $now_date;
echo "<br />";
echo $datelimite;
if($date_limite>$now_date){
etccccc
0