|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Invité régulier
![]() Inscription : juillet 2005 Messages : 36 ![]() |
Bonjour,
J'aimerai faire une boucle pour qu'à partir d'une date, il me rajoute un mois à cette date jusqu'à une date donnée. Voici ma boucle pour être un peu plus clair : Code :
Citation:
Je ne comprends vraiment pas pourquoi.... Avez vous une solution à ce problème ? Merci |
|||
|
|
00
|
|
|
#2 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Hello
Tu peux sûrement t'amuser à jouer avec strtotime: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
01
|
|
|
#3 |
|
Invité régulier
![]() Inscription : juillet 2005 Messages : 36 ![]() |
Hello,
Oui mais j'aimerai tester à partir à une date donnée jusqu'à une autre date. Ma date de départ est 2007-01-01 et ma date de fin est la date aujourd'hui. J'aimerai qu'à partir de 2007-01-01 il m'incrémente d'un mois à chaque fois jusqu'à aujourd'hui... Car en fait dans la boucle je fais d'autre traitement... J'espere que j'ai été clair. C'est pour ca que je ne comprends pas pourquoi il ne passe pas dans avril avec le code que j'ai fait.. Merci |
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Étudiant Inscription : avril 2011 Messages : 317 ![]() |
Bonjour,
Je viens d'essayer ta fonction, et j'avoue que ça me surprend, j'ai fais quelques tests et voilà ce que j'ai remarqué : - La fonction saute le mois d'avril au bout de la 4ème année - Si je mets des dates inférieures à 2010 => tout marche Serait-ce possible qu'il y ait un soucis avec la fonction ? Car au niveau du code je vois vraiment pas ... surtout que ça marche pour certaines dates. |
|
|
00
|
|
|
#5 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Le code initial se base sur mktime(0,0,0,2,0,0) ; ca n'a aucun sens.
Pour le code de Benjamin, les "+1 month" sont piégés : 31 janvier + 1 month = 3 mai Par contre en partant du 1er du mois, le problème ne se pose pas. |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : juin 2005 Messages : 60 ![]() |
Salut
Ca ne fonctionne pas parce que tu ajoutes une durée fixe à chaque itération de ta boucle. Le problème c'est qu'un mois n'a pas une durée fixe. Il va falloir que tu fasses une boucle sur le numéro du mois et sur l'année avec vérification : Quand $mois>12, $mois=1 et $annee++; |
|
|
00
|
|
|
#7 | |
|
Membre éprouvé
![]() Étudiant Inscription : avril 2011 Messages : 317 ![]() |
Citation:
|
|
|
|
00
|
|
|
#8 | ||||
|
Expert Confirmé
![]() Inscription : mars 2005 Messages : 2 823 ![]() |
Ne jamais utiliser mktime( ) (d'abord la fonction est illisible
Avec next month on passe d'une certaine date à la même date du mois suivant sans avoir à s'occuper du nbre de jours de chaque mois. Code :
Code :
__________________
Un problème exposé clairement est déjà à moitié résolu Keep It Smart and Simple |
||||
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : juin 2005 Messages : 60 ![]() |
Tiens, je ne connaissais pas next month, effectivement ça règle tous les problèmes
|
|
|
00
|
|
|
#10 | ||
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Citation:
Il faut cumuler 31 jours de décalage pour que l'anomalie se matérialise. Citation:
"next month" du 31 janvier c'est le 3 mars. |
||
|
|
00
|
|
|
#11 | |
|
Membre éprouvé
![]() Étudiant Inscription : avril 2011 Messages : 317 ![]() |
Citation:
|
|
|
|
00
|
|
|
#12 | |||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
En adaptant le code que je t'ai filé à ton cas, ça donne:
Code :
Citation:
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|||
|
01
|
|
|
#13 |
|
Invité régulier
![]() Inscription : juillet 2005 Messages : 36 ![]() |
Avez vous un bout de code pour régler ce problème par hasard ?
Merci |
|
|
00
|
|
|
#14 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
En tenant compte de la remarque de Sabotage, ceci devrait être juste:
Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
01
|
Copyright © 2000-2012 - www.developpez.com