Php : nombre de jour dans un mois

Bjr,
je voudrais savoir comment obtenir le nombre de jours que contient un mois en php en sélectionnant ce mois et l'année voulu avant dans une liste déroulante.
Je sais que pour le mois en cours c'est date("t") et qd je le combien avec mktime ça foire.
Qq'1 peut m'aider?
Merci.

5 réponses

  1. Tout simplement

    $nb_jour = date('t',mktime(0, 0, 0, $mois, 1, $année));

    trouvé là

    http://www.comscripts.com/sources/php.combien-de-jours-dans-le-mois.16.html

    dans les commentaires
    1. N'oublies pas résolu, en haut à droite, ou pose de nouvelles questions !
    2. Warning: mktime() expects parameter 4 to be long
  2. Contributeur
    salut,

    et pourquoi ne pas utiliser 'date('t')' ?
    function getDaysInMonth($month=null,$year=null) {
    
      if ($month==null) { 
    
           $month = date("n",time());
    
      }
    
       if ($year=null) {
    
           $year = date("Y",time());
    
       }
    
      $dim = date( "t", mktime(0, 0, 0, $month, 1, $year) );
    
      return $dim;
    
    }

    1. ne gère pas les années bisextiles
    2. "ne gère pas les années bisextiles"

      Vraiment pas ! Car date('t') retourne 30 ou 31 correctement pour tous les mois et 28 ou 29 pour le mois de février, que l'année soit bissextile ou non. Donc les 2 manières citées sont correctes.
    3. c'est bizarre quand je teste les années bisextiles ne sont pas gérées... Février m'affiche toujours 29 jours !

      il faut virer les IF !!! pour que ça marche...

      sinon la fonction vous met tout à NULL

      soit :

      function getDaysInMonth($month,$year)
      { $dim = date( "t", mktime(0, 0, 0, $month, 1, $year));
      return $dim;
      }
    4. // Ma petite pierre à l'édifice, en espérant que ça serve à d'autres :

      function GetNbDays ($month = null, $year = null)
      {
      $month = ($month) ? $month : date('m');
      $year = ($year) ? $year : date('Y');

      return intval(date("t",strtotime("$year-$month-01")));
      }
    5. qssqsqsqsqqqqqqqqqq
  3. Bonjour,

    Je ne suis pas Juile, mais je tiens à te dire bravo. Je n'y avais pas pensé !! :P utiliser le TS du premier jour du mois suivant moins une seconde. Encore Bravo

    Thierry
    1. Alors, ça donne quoi, Julie ?

      @++

      Vous hésitez entre Linux et Windows ?
      Vous voulez dépenser du temps ou de l'argent ?
      1. Bonsoir Julie,

        Trouver sur www.php.net

        function getDaysInMonth($month=null,$year=null) {
        
        if ($month==null) {
        $month = date("n",time());
        }
        if ($year=null) {
        $year = date("Y",time());
        }

        $dim = date( "j", mktime(0, 0, 0, $month + 1, 1, $year) - 1 );

        return $dim;
        }


        Teste et vois si ca marche

        PhP    [Push the button,Don't push the
        .         button,Trip the station,Change the channel]
        1. Ya une fonction qui existe en php:
          http://php.net/manual/fr/function.cal-days-in-month.php