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 :

[Dates] Incrémenter une date jour par jour dans une boucle


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut [Dates] Incrémenter une date jour par jour dans une boucle
    Bonjour à tous,

    Pour des tests, je souhaiterais écrire 2 ou 3 ans de dates dans un fichier texte. Or je ne parviens pas à créer la boucle qui écrirait ça.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $date_debut = "2006-01-01";
    $date_fin = date("Y-m-d");
     
    for($i=$date_debut;$i<$date_fin;$i++){
    fwrite($fic, $i.'\n');
    pour écrire :
    2006-01-01
    2006-01-02
    2006-01-03
    etc...jusqu'à aujourd'hui.

    Evidemment, cette boucle est naze ! Je cherche du côté de mktime(), mais je ne suis pas sûr d'arriver à quelque chose avec ça...

  2. #2
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Citation Envoyé par renaud26 Voir le message
    Evidemment, cette boucle est naze ! Je cherche du côté de mktime(), mais je ne suis pas sûr d'arriver à quelque chose avec ça...
    Et pourtant c'est bien de ce côté que tu dois te tourner.
    Les manipulations de date doivent se faire par les timestamp.

  3. #3
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    as-tu essayé de cette manière ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $today = time();
    $time = $today;
    // On va passer en revue 730 jours / env 2 ans
    for($i = 1; $i <= 730; $i++){
        $time += 86400; // On incrémente au timestamp 86400 s par jour
        echo date('y-m-d',$time);
    }

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Salut Renaud,

    Les objet DateTime, c'est ce qu'il y a de plus rapide.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
      $fichier = 'date.txt';
     
      $dateDeb = new DateTime('2006-01-01');  
      $dateFin = new DateTime();
     
      $date = '';  
      while ($dateDeb -> format('Y-m-d') <= $dateFin -> format('Y-m-d'))
      {
        $date .= $dateDeb -> format('Y-m-d') . "\n";
        $dateDeb -> modify('+1 day');
      }
      file_put_contents($fichier, $date)
    ?>

  5. #5
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Cest clair que c'est beaucoup plus limpide avec l'objet DateTime

  6. #6
    Membre éprouvé Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Par défaut
    Merci beaucoup de vos réponses, je n'ai pas reçu le mail d'alerte.

    @Jérôme : salut ! et merci de ton coup de main...mais j'ai bien l'impression que mon serveur a une version PHP insuffisante pour les objets DateTime...

    @thomasR : merci à toi aussi, je vais tester ta methode.

    Puis je vous dis ce qu'il en est.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 08/10/2010, 12h00
  2. Affichage de jour par mois dans une grille ( planning)
    Par thierry007 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 04/09/2009, 14h18
  3. Récupérer le jour, le mois dans une date mysql
    Par sandddy dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/03/2008, 12h54
  4. Réponses: 7
    Dernier message: 22/11/2006, 10h14
  5. Réponses: 2
    Dernier message: 30/08/2006, 23h51

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