Comparaison de deux dates [Résolu/Fermé]

Signaler
-
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
-
Bonjour,

Je voudrais comparer deux dates afin d'effectuer un code si la première est plus récente et un autre si elle est plus ancienne.

$testDate = mssql_query ("SELECT CONVERT (VARCHAR(10), dtModification, 103) AS 'dateModification' FROM mytable");
$jourModif = substr ($testDate, 0, 2);
$moisModif = substr ($testDate, 4, 2);
$anneeModif = substr ($testDate, 6, 4);
mktime(0,0,0,$moisModif, $jourModif, $anneeModif)

ensuite quand je teste mes deux dâte, le test se fait et j'entre bien dans ma condition mais j'ai une erreur:
Warning: mktime() expects parameter 4 to be long, string given

Je n'arrive pas à la résoudre,
Merci pour votre aide,

8 réponses

Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
873
il faut que tu passes par le timestamp donc par la fonction mktime(...)

mais quand tu fais $testDate = mssql_query ("SELECT CONVERT (VARCHAR(10), dtModification, 103) AS 'dateModification' FROM mytable");

il te manque qq chose il faut extraire les données trouvées par mysql_query

par un mysql_fetch_row(...) ou autre pour pouvoir exploiter les resultats
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57608 internautes nous ont dit merci ce mois-ci

Messages postés
264
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
18 mars 2014
46
Bonjour,

Je te propose d'aller sur le manuel PHP :

https://www.php.net/mktime

Bon chance à toi,
J'ai fais avec ça seulement ça ne m'aide pas. Le soucis c'est que pour séparer le jour mois et l'année je converti ma date en string or mktime visiblement veut des long...

Si je fait mktime($madate) j'ai aussi des warning donc je suis totalement perdue sur comment je dois procéder.
Messages postés
134
Date d'inscription
dimanche 5 avril 2009
Statut
Membre
Dernière intervention
4 novembre 2009
1
moi je peu peut-être t'aider mais avant je peu rien faire si je comprend rien à l'utilité de ton program :S
c'est quoi le but ?
Messages postés
264
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
18 mars 2014
46
Avant de faire le substr de $testDate, as-tu regarder ce que cette variable contenait ?

Versus, l'aide doit être indépente du programme et fait attention à ton écriture, le sms n'est pas le bienvenu ici, merci.
Messages postés
134
Date d'inscription
dimanche 5 avril 2009
Statut
Membre
Dernière intervention
4 novembre 2009
1
Moi je dis que le "sms" est bienvenu :D
tu aprendra plus tard que ce que TU n'apréci pas peut être aprécié par les autres et puis c'est lisible attends par rappaort à :

slt T V Bi1 ? Moua JV bi1 tkt pr mua C la form ...
bon A2m1 slt.

c'est juste une écritur bourée d'orthographe mais rien de plus la mienne c'est pas "sms" .
$testDate contient une dâte au format jj/mm/aaaa convertie en Varchar sinon elle est dans un autre format plus difficile à exploier.

L'utilité est de comparer une dâte avec une dâte d'expiration qui est dans ma base de donnée, ainsi tu sais si la donnée est encore valable ou non.
Messages postés
134
Date d'inscription
dimanche 5 avril 2009
Statut
Membre
Dernière intervention
4 novembre 2009
1
j'ai une solution mais elle est longue c'est de convertire la date en nombre et tu voi si le nombre de la date entrée
est superieure à l'actuelle :)

genre 22/07/2009 tu met 22+7*31+2009*12*31
ça donne un nombre et tu fait le même calcule avec la date actuelle

c'est pas exacte le calcul que j'ai fait mais je pense que ça marche au point de vue anteriorité-superiorité :)