Bonjour,
Voila je voudrais savoir comment on fait une boucle for sur une date en php par exemple:
Code:
1
2
3
4 for($date='2010-12-23'; $date=="2010-12-29"; $date++) { //le traitement la dedans.. }
Merci beaucoup pour votre aide....:P
Version imprimable
Bonjour,
Voila je voudrais savoir comment on fait une boucle for sur une date en php par exemple:
Code:
1
2
3
4 for($date='2010-12-23'; $date=="2010-12-29"; $date++) { //le traitement la dedans.. }
Merci beaucoup pour votre aide....:P
Si en PHP >= 5.3, il existe DatePeriod :
Notes :Code:
1
2
3
4
5 $start = new DateTime('2009-01-01'); $end = new DateTime('2009-02-09'); foreach (new DatePeriod($start, new DateInterval('P1D') /* pas d'un jour */, $end) as $dt) { echo $dt->format('Y-m-d'); }
- si la date est invalide, comme 2009-02-31, il va poursuivre en mars
- le dernier jour est exclus (sinon ajouter un jour via les méthodes add ou modify de DateTime - $end->modify('+1 day'))
Sinon, avec des versions antérieures, je ne crois pas que ce soit directement possible (passage par des timestamps/mktime ou faire soi-même les opérations avec DateTime ?).
et de combien je devrai augmenter le timestamp pour passer d'un jour a un autre???
et est ce que je peux utiliser un timestamp qui n'existe pas encore ?? genre une date supérieur a celle d'aujourd'hui????... Merci bcp pour votre aide...
Il y a deux jours par ans qui ne font pas 86400 secondes, ca suffit a tout fausser.Citation:
1 journée = 24 h = 24 * 60 minutes = 24 * 60 * 60 secondes soit 86400
Pour compléter la proposition de Julp si PHP < 5.3
C'est moche, certes :DCode:
1
2
3
4 for( $a = strtotime( '2010-05-29' ) ; $a < strtotime( '2010-06-10' ) ; $a=strtotime( date( 'Y-m-d' , $a ) . ' +1 day' ) ){ echo date( 'Y-m-d' , $a ) . "\n"; }