La fonction mktime()

Fermé
php developper - 2 juin 2009 à 17:15
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 - 2 juin 2009 à 17:55
Bonjour,

je suis entrain de developper une application avec php
dans ma table mysql j'ai une date d'echeance alors je voulais calculer la date correspondant a l'echeance - 179 jours (cad 6 mois) j'ai utilise ce code mais je me trouve avec une date null (0000-00-00)
Est ce que je peux trouver une solution ou connaitre d'ou vient le probleme
$jour=substr($echeance, 8, 2)-179;
$mois=substr($echeance, 5, 2);
$an=substr($echeance,0,4);
$six_mois = mktime(0,0,0 ,$jour,$mois,$an);

Au revoir

3 réponses

okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
2 juin 2009 à 17:25
déjà, mktime(0,0,0 ,$jour,$mois,$an) c'est faux. tu devrai utiliser mktime(0,0,0 ,$mois,$jour,$an)
ensuite pour $mois=substr($echeance, 5, 2);
ce serai plutot $mois=substr($echeance, 6, 2); car en mettant 5 tu prend "-0" au lieu de "00"
pareil pour le jour.
reli la doc sur substr :)
http://be2.php.net/substr
0
php developper
2 juin 2009 à 17:49
merci,

En affichant $mois j'ai trouve 10 c'est bien le mois qui se trouve dans la variable $echeance
et meme si j'ai change mktime(0,0,0,$mois,$jour,$an) le meme probleme reside
0
okuni Messages postés 1221 Date d'inscription jeudi 4 septembre 2008 Statut Membre Dernière intervention 2 janvier 2014 126
2 juin 2009 à 17:55
Ok je vien de voir ton erreur.
Tout ce que j'ai dit est tjs valable mais tu erreur est la suivante : $jour=substr($echeance, 8, 2)-179;
Tu as un jour négatif.
Si tu veux enlever un certain nombre de jour, transforme ton nombre de jour en seconde et soustrait le temps unix par celui-ci.
0