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. 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
  3. Alors, ça donne quoi, Julie ?

    @++

    Vous hésitez entre Linux et Windows ?
    Vous voulez dépenser du temps ou de l'argent ?
    1. 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. 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