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 :

que se passe-t-il le 30 octobre? [PHP 7]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 2
    Points : 5
    Points
    5
    Par défaut que se passe-t-il le 30 octobre?
    Bonjour.
    Je travaille sur un calendrier et je tombe sur un truc bizarre. Le code suivant fait apparaître 2 fois le 30 octobre dans la liste, et je ne comprends pas pourquoi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $n=0;
    $s=mktime(0,0,0,9,29,2016);
    while($n<=42){
    	print date('Y-m-d',$s)."<br>"; 
    	$s=$s+86400; 
    	$n++;
    }
    ?>
    Si je prends comme date de départ le 29/09/2014 ou 2015, pas de problème. Si je prends 2017, c'est le 2017-10-29 qui apparaît 2 fois. En 2018, c'est le 2018-10-28... Il y a là qqch qui m'échappe complètement, et c'est bien gênant.
    Si quelqu'un pouvait m'expliquer comment contourner ce problème, ça m'aiderait pas mal.
    Merci d'avance !

  2. #2
    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
    Le 30 octobre c'est le changement d'heure et donc la journée fait plus de 86400 secondes.

    Tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    for ($n = 0; $n <= 43; ++$n) {
    	echo date('Y-m-d', strtotime('2016-09-29' . " +$n day"))."<br>"; 
    }
    ?>
    ou plus moderne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $date = new Datetime('2016-09-29');
    for ($n = 0; $n <= 43; ++$n) {
       echo $date->format('Y-m-d') . '<br/>';
       $date->modify('+1 day');
    }

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 2
    Points : 5
    Points
    5
    Par défaut
    Super! Merci, ça marche!

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

Discussions similaires

  1. Que se passe t-il sans fonction exit?
    Par Poseidon13 dans le forum C
    Réponses: 7
    Dernier message: 21/10/2005, 18h47
  2. Que se passe t il lors de la pose d'un composant?
    Par korntex5 dans le forum Composants VCL
    Réponses: 8
    Dernier message: 06/10/2005, 13h30
  3. que se passe t il quand ...
    Par -<R1>- dans le forum Débuter
    Réponses: 2
    Dernier message: 28/06/2004, 14h00
  4. Que se passe-t-il en interne si un ROLLBACK plante ?
    Par jack554 dans le forum Administration
    Réponses: 4
    Dernier message: 07/04/2004, 12h55
  5. [VB6] [Install] Que se passe-t-il lors du setup?
    Par petit scarabée dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 28/10/2002, 08h26

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