IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Boucle for pour une date


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut Boucle for pour une date
    Bonjour,

    Voila je voudrais savoir comment on fait une boucle for sur une date en php par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for($date='2010-12-23'; $date=="2010-12-29"; $date++)
    {
     //le traitement la dedans..
     }

    Merci beaucoup pour votre aide....

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Si en PHP >= 5.3, il existe DatePeriod :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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');
    }
    Notes :
    • 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 ?).

  3. #3
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    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...

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Citation Envoyé par zemzoum89 Voir le message
    et de combien je devrai augmenter le timestamp pour passer d'un jour a un autre???
    1 journée = 24 h = 24 * 60 minutes = 24 * 60 * 60 secondes soit 86400

    Citation Envoyé par zemzoum89 Voir le message
    et est ce que je peux utiliser un timestamp qui n'existe pas encore ?? genre une date supérieur a celle d'aujourd'hui????...
    Pourquoi ne pourrait-on pas travailler avec des dates futures ? (à la limite du système éventuellement)

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    1 journée = 24 h = 24 * 60 minutes = 24 * 60 * 60 secondes soit 86400
    Il y a deux jours par ans qui ne font pas 86400 secondes, ca suffit a tout fausser.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    Pour compléter la proposition de Julp si PHP < 5.3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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";
    }
    C'est moche, certes
    Pourfendeur de singletons en croisade

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/09/2014, 17h30
  2. lenteur d'une boucle FOR pour cursor
    Par zinabd dans le forum PL/SQL
    Réponses: 1
    Dernier message: 13/08/2010, 10h55
  3. boucle for pour une requete
    Par MASSAKA dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/04/2010, 18h08
  4. Réponses: 5
    Dernier message: 05/02/2010, 19h04
  5. création d'une boucle for pour interrogation requête sql
    Par philder62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/12/2007, 15h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo