Comparaison de date

Résolu
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 - 22 mars 2005 à 15:30
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 - 23 mars 2005 à 12:58
bonjour



j'ai un petit souci... Je recupère 2 dates et j'aimerais les comparer
pour savoir laquelle est la plus grande. ça parait très simple mais...
voila ce que j'ai mis :



if (date("d/m/Y",filemtime($DossierTemp."/".$file))<date("d/m/Y"))

{
il récupère bien les 2 dates dans le meme format.
j'ai récupérer la date de dernière modif d'un fichier pour la comparer àla date du jour mais ça ne marche pas...

aidez moi svp.



pourtant en sql quand on écrit ça : DateFin<'".date("Y-m-d")."'" ça marche.

13 réponses

loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 1
22 mars 2005 à 16:40
malalam a raison ça ne marchait pas pour plusieurs raison :

$date_fic[1] ---> renvoie le premier caractère de la chaine pas la première sous-chaine



donc ma condition est fausse, en plus elle l'est doublement puisqu'il faut regarder "
l'annee, puis le mois, puis le jour."



Je l'avais refait avant de voir vos messages, car ça ne marchait pas donc voila ce que j'ai :





$date_fic=date("d/m/Y",filemtime($DossierTemp."/".$file));

$date_jour=date("d/m/Y");

list($jour1,$mois1,$anne1)=explode("/",$date_fic);

list($jour2,$mois2,$anne2)=explode("/",$date_jour);

if ($anne1<$anne2)

{

unlink($DossierTemp."/".$file);

}else{

if($mois1<$mois2)

{

unlink($DossierTemp."/".$file);

}else{

if($jour1<$jour2)

{

unlink($DossierTemp."/".$file);

}

}

}



voila merci quand meme
3
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 1
22 mars 2005 à 15:44
c'est bon :



$date_fic=date("d/m/Y",filemtime($DossierTemp."/".$file));

$date_jour=date("d/m/Y");

explode("/",$date_fic);

explode("/",$date_jour);


if ($date_fic[1]<$date_jour[1] &&
$date_fic[2]<=$date_jour[2] &&
$date_fic[3]<=$date_jour[3])

{

unlink($DossierTemp."/".$file);

}

je compare avec le numéro du jour, le numéro du mois et l'année.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 mars 2005 à 15:48
Hello,



je ne crois pas que l'on puisse faire ca comme ca en php.

Tu peux convertir la date en secondes et comparer, ou alors la separer en 3 et comparer l'annee, puis le mois, puis le jour.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 mars 2005 à 16:09
Voila lol.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
22 mars 2005 à 16:26
Salut,



tu peux tout à fait faire ça je vois pas où est le prob ?!



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
22 mars 2005 à 17:16
Bah oui, mais ta méthode pour comparer deux dates est bonne :-)



(à savoir accoler l'année, puis le mois et enfin le jour)



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 mars 2005 à 17:43
Pour confirmer, Antho, j'ai repondu uniquement a son 1er message, et
entre temps il a ecrit son 2eme...voila tout. Auquel j'ai ajoute
"voila, lol".
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
22 mars 2005 à 17:55
ok

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
tardigrade Messages postés 208 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 décembre 2008
23 mars 2005 à 01:13
ouai sauf que les dates sont des nombres: il suffit de faire



date1=mktime(0,0,0,1,1,2005);

date2=mktime();

if(date1<date2)

print('
date1<date2
');

else


print('
date1>=date2
');
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
23 mars 2005 à 07:10
ça marche aussi

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
tardigrade Messages postés 208 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 décembre 2008
23 mars 2005 à 09:16
ca marche certes mais c'est idiot quand tu veux savoir lequel de deux
nombres est le plus petit tu transforme en string fait deux boucles for
et compare par rapport au code ascii

les dates sont des int pourquoi compliquer le code avec des explode() et des date().



Vive l'optimisation du code....
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
23 mars 2005 à 11:58
Bien sûr, mais je te dis seulement que la méthode fonctionne, je n'ai pas dit que c'était optimisé, et loin de là...



Perso je ferai



if(filemtime('machin')<time())

{

//hop

}



alors bon...

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
loyousse Messages postés 198 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 16 décembre 2008 1
23 mars 2005 à 12:58
c'est vrai que c'est pas optimisé...



quand je devais comparer les dates et que je ne savais pas comment faire j'ai essayé plein de solutions. La fonction "filemtime"
renvoie la date dans un format bizar donc je ne pensais pas pouvoir
m'en servir. Après je pensais qu'il fallait que je les mettent en
format jj/mm/aaaa
mais dans ce format, ça les compare comme des chaines de cractères pas
comme des dates, donc j'ai décomposé la date en récupérant le jour, le
mois et l'année pour les comparer.



Maintenant que j'ai vos solutions bien plus courtes que la mienne
(malgré que le résultat soit le même........) je vais m'en servir pour
réduire mon code.



Merci à vous tous.



@+
0
Rejoignez-nous