Savoir si une date est superieure a une autre date ou posterieure

[Résolu]
Signaler
Messages postés
190
Date d'inscription
dimanche 10 avril 2005
Statut
Membre
Dernière intervention
4 juillet 2007
-
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
-
Bonjour

Je fais actuellement un agenda partagée et j'ai un petit probleme :
Je cherche une fonction qui pourrait me dire si une date passée en parametre est anterieure ou posterieure a une autre date elle aussi passée en parametre.
J'ai pas arrêter de chercher sur le forum, mais j'ai pas trouvé mon bonheur.

Si quelqu'un pouvait m'aider .....T_T
Merci d'avance
Maiku

9 réponses

Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Tes dates doivent être du même format pour pouvoir effectuer une quelconque opération.
Soit ce sont des Timestamp Unix, soit des dates aux formats mktime(). Il est possible qu'il y est d'autres facons de faire, mais le principe est le même...

Si tu fais :

$date1 = $_GET['date1'];
// Sous la forme : aaaa/mm/jj
$date2 = $_GET['date2'];
// Sous la forme : aaaa/mm/jj

echo $date2 - $date1;
// Tu peux toujours essayé, mais ca ne marchera pas. On ne fais pas d'opération mathématique sur un string.

Voila pourquoi ca ne marchait pas avant.
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Hello,

strtotime (), et tu compares sur le timestamp obtenu.
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
a priori si les dates sont sous la forme aaaammjj
tu peux les comparer simplement...(date1> ou < date2)
Messages postés
190
Date d'inscription
dimanche 10 avril 2005
Statut
Membre
Dernière intervention
4 juillet 2007

Rebonjour

Alors vos solutions sont bien tous les deux, toutefois je risque de devoir utiliser plusieurs la comparaison, donc la solution de malalam m'interesse un petit plus pour faire une fonction, comment pourrais tu m'en dire un pe plus malalam sur cette solution car ses deux fonctions, je ne les ai jamais utilisées encore.

Merci d'Avance
Maiku
Messages postés
365
Date d'inscription
samedi 26 juin 2004
Statut
Membre
Dernière intervention
17 avril 2008

Malalam a raison tu fais un date(); ou un strtotime(); pour transformé un format de date quelconque en timestamp unix, puis tu compares les valeurs obtenues

Va sur php.net pour plus d'info sur ces fonctions
_Marikou
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
Salut,

en sql, c'est plus simple : < et >....



en php, la solution de malam parait bonne... faudrait faire des benchs,
entre ça et un parsing... (je crois que malam gagnerait...)

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Messages postés
190
Date d'inscription
dimanche 10 avril 2005
Statut
Membre
Dernière intervention
4 juillet 2007

Rebonjour

alors j'ai essayé d'utiliser la solution de malalam mais sans succes, j'ai plutot utilisé une fonction que j'ai fait et qui me calculer la date en numerique avec mktime.
Sinon coucou747, je n'aurai pa pu utiliser ta solution, car ce n'etait pas dans le cadre d'une requete sql.

Merci qd mm de votre aide.
Maiku
Messages postés
190
Date d'inscription
dimanche 10 avril 2005
Statut
Membre
Dernière intervention
4 juillet 2007

En effet, j'ai decidé d'utiliser la transformation en minute avec le mktime.
Toutefois je ne peux pas utiliser le $_GET, a mon boulot, ca leur a posé des problemes, il n'utilise que le $_POST.
Mais avec le mktime maintenant tout va bien.

Merci
Maiku
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
Salut,

alors fait réponse accèptée...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy