Comparaison de deux dates

Résolu/Fermé
jsutine - 22 juil. 2009 à 11:36
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 22 juil. 2009 à 16:42
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

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
22 juil. 2009 à 16:42
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
Thamior Messages postés 264 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 18 mars 2014 47
22 juil. 2009 à 11:47
Bonjour,

Je te propose d'aller sur le manuel PHP :

https://www.php.net/mktime

Bon chance à toi,
0
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.
0
Versus92 Messages postés 133 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 4 novembre 2009 1
22 juil. 2009 à 11:53
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 ?
0

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

Posez votre question
Thamior Messages postés 264 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 18 mars 2014 47
22 juil. 2009 à 11:57
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.
0
Versus92 Messages postés 133 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 4 novembre 2009 1
22 juil. 2009 à 12:10
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" .
0
$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.
0
Versus92 Messages postés 133 Date d'inscription dimanche 5 avril 2009 Statut Membre Dernière intervention 4 novembre 2009 1
22 juil. 2009 à 16:36
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é :)
0