Ajouter une semaine à une date
Posté : 31 août 2011, 21:48
Bonjour,
J'ai un programme qui enregistre un même évènement toutes les semaines pendant une certaine durée. Par exemple un événement qui a lieu un mardi doit être enregistrer tous les mardis entre deux dates. Donc j'ai une variable de type date, et je lui ajoute 7 jours jusqu'à ce que j'arrive à la date souhaitée. J'utilise cet algorithme :
$ladate=$ladate+$repetjr*60*60*24; où $ladate est la date à laquelle je me trouve actuellement (elle est donc incrémentée régulièrement); $repetjr est le nombre de jour que je dois rajouter. Dans l'exemple que je prends, $repetjr est égal à 7 puisque j'ajoute 7 jours à chaque fois.
Cette commande est évidemment dans une boucle.
for ($i = 0; $i <= 340/$repetjr; $i++) {
$ladate=$ladate+$repetjr*60*60*24;
$date=date('Y-m-d',$ladate);
$enreg=mysql_db_query(***,"INSERT INTO **** VALUES (*****)");
}
Ce qui me répète un événement pendant environ 1 an (je n'ai pas besoin d'être précis).
Un phénomène très étrange se produit. Lorsque j'ajoute 7 jours à la date du 25/10/2011, je me retrouve avec le 31/10/2011 au lieu du 1/11/2011. Et cela pour toutes les dates qui viennent également après. Un retour à la normale se produit à partir du 25/03/2012 je crois.
Cela correspond étrangement aux heures d'été et d'hiver non? Pourquoi? Que se passe-t-il? Et comment réglé le problème!!!!
Mille mercis pour votre aide.
J'ai un programme qui enregistre un même évènement toutes les semaines pendant une certaine durée. Par exemple un événement qui a lieu un mardi doit être enregistrer tous les mardis entre deux dates. Donc j'ai une variable de type date, et je lui ajoute 7 jours jusqu'à ce que j'arrive à la date souhaitée. J'utilise cet algorithme :
$ladate=$ladate+$repetjr*60*60*24; où $ladate est la date à laquelle je me trouve actuellement (elle est donc incrémentée régulièrement); $repetjr est le nombre de jour que je dois rajouter. Dans l'exemple que je prends, $repetjr est égal à 7 puisque j'ajoute 7 jours à chaque fois.
Cette commande est évidemment dans une boucle.
for ($i = 0; $i <= 340/$repetjr; $i++) {
$ladate=$ladate+$repetjr*60*60*24;
$date=date('Y-m-d',$ladate);
$enreg=mysql_db_query(***,"INSERT INTO **** VALUES (*****)");
}
Ce qui me répète un événement pendant environ 1 an (je n'ai pas besoin d'être précis).
Un phénomène très étrange se produit. Lorsque j'ajoute 7 jours à la date du 25/10/2011, je me retrouve avec le 31/10/2011 au lieu du 1/11/2011. Et cela pour toutes les dates qui viennent également après. Un retour à la normale se produit à partir du 25/03/2012 je crois.
Cela correspond étrangement aux heures d'été et d'hiver non? Pourquoi? Que se passe-t-il? Et comment réglé le problème!!!!
Mille mercis pour votre aide.