Comparer deux dates

Résolu/Fermé
jordxn Messages postés 356 Date d'inscription jeudi 15 avril 2010 Statut Membre Dernière intervention 26 avril 2015 - 16 avril 2013 à 17:01
 Utilisateur anonyme - 16 avril 2013 à 17:38
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
16 avril 2013 à 17:03
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 jeudi 15 avril 2010 Statut Membre Dernière intervention 26 avril 2015 1
16 avril 2013 à 17:05
Et donc je peux faire comment svp ?
0
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 jeudi 15 avril 2010 Statut Membre Dernière intervention 26 avril 2015 1
16 avril 2013 à 17:16
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
? 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 jeudi 15 avril 2010 Statut Membre Dernière intervention 26 avril 2015 1
16 avril 2013 à 17:23
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
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 jeudi 15 avril 2010 Statut Membre Dernière intervention 26 avril 2015 1
16 avril 2013 à 17:28
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
Vérifie bien tes variables , ton code avec ces dates fonctionne chez moi
0
jordxn Messages postés 356 Date d'inscription jeudi 15 avril 2010 Statut Membre Dernière intervention 26 avril 2015 1
16 avril 2013 à 17:33
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