cs_sebalex
Messages postés153Date d'inscriptionvendredi 25 février 2005StatutMembreDernière intervention 6 janvier 2017
-
12 janv. 2012 à 09:58
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 2013
-
13 janv. 2012 à 16:12
Bonjour à tous et bonne année.
Voici mon problème :
J'ai la ligne de code suivante :
if((date('m') + 3) > 12) {$MOIS (date('m') + 3) - 12;}else{$MOIS date('m') + 3;}
Comme nous sommes en janvier (01), ma recherche devrait me donner avril (04). Les mois dans ma BDD sont indiqués en 01 pour janvier, 02 pour février, etc...
Le résultat de ma chaîne donne par contre "4" au lieu de "04" car bien que date('m') indique le zéro avant le chiffre, le résultat trouvé est "4".
Quelqu'un aurait-il une idée pour ajouter un "0" à mon résultat et ai-je été assez clair ?
NHenry
Messages postés15067Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention27 mai 2023158 12 janv. 2012 à 12:42
Bonjour,
date('m') + 3
Il considère que c'est du numérique et retires donc le 0 supplémentaire.
Si tu fais une requête, utilises printf et le format %02d
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Mon site
mysql_select_db($database_connexion, $connexion);
$query_echeancesNLPP = "SELECT * FROM CONTRATS WHERE FIN_ANNEE <= '$ANNEE' AND FIN_MOIS = '$MOIS_NLPP' AND ETAT_CONTRAT = 'en vigueur' AND ID_ASSURANCE != 23 ORDER BY ID_COMP, ID_ASSURANCE ASC";
$echeancesNLPP = mysql_query($query_echeancesNLPP, $connexion) or die(mysql_error());
$row_echeancesNLPP = mysql_fetch_assoc($echeancesNLPP);
Comme tu peux le constater, ma requête recherche un nombre ($MOIS_NLPP) sans le zéro initial dans une BDD où les mois sont indiqués avec le zéro initial.
cs_sebalex
Messages postés153Date d'inscriptionvendredi 25 février 2005StatutMembreDernière intervention 6 janvier 2017 12 janv. 2012 à 16:52
NHenry,
J'ai trouvé grâce à ton intervention. Ce que je ne comprends pas, c'est comment je n'ai pas pensé à ça avant car en fait je l'utilise dans une autre requête avec LIKE '%...%' !!!!!!
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 13 janv. 2012 à 03:10
Salut,
Pourquoi est-ce que t'embêtes à gérer les cas foireux sur les dates alors que tout a déjà été fait avec DateTime ?
<?php
$dt = new DateTime();
$dt->add(new DateInterval('P3M'));
echo $dt->format('m');
?>
Dans cet exemple je créé une date qui, par défaut, est la date courante. J'ajoute ensuite une période de 3 mois. J'ai juste à récupérer la date au format que je veux, ici juste le mois mais on peux mettre ce qu'on veux.
Vous n’avez pas trouvé la réponse que vous recherchez ?
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 13 janv. 2012 à 16:12
Ce n'est pas parce que j'ai mis un echo que tu es obligé d'en mettre un. La chaîne de caractère retournée par la méthode format est une chaîne comme une autre, tu peux très bien l'utiliser dans ta requête. La seule chose foireuse ici est ton raisonnement.