> Manuales > Calendario PHP

Realizamos una función que calcula el número de días de un mes en PHP. Que podremos utilizar en el calendario en PHP.

A continuación vamos a ver una sencilla manera de codificar una función en PHP que realiza el cálculo de los días de un mes, teniendo en cuenta si el mes tiene 30 o 31 días así como si es febrero de un mes bisiesto, etc.

Esta función es UltimoDia() que hemos utilizado ya en alguna ocasión para el manual de calendario en PHP. Está creada de manera "artesanal", Aunque PHP actualmente contiene algunas funciones que nos pueden ayudar a hacer este mismo trabajo sin tener que realizar nosotros mismos los cálculos.

Nota: La función UltimoDia() hace un cálculo de cuál es el último día de un mes. La hemos utilizado con anterioridad (una versión distinta de la presente) para realizar el Manual del calendario en PHP.

No es necesario hacer un ciclo repetitivo para la función UltimoDia(), es un poco más simple de resolver.

Los meses 1,3,5,7,8,10,12 siempre tienen 31 días, los meses 4,6,9,11 siempre tienen 30 días, el único problema es el mes de febrero dependiendo del año puede tener 28 o 29 días, pero ese cálculo tampoco es dificil.

Aquí envío el código para la función UltimoDía(), que ojalá les sirva...

Nota: Por favor, leer los comentarios que han enviado otros visitantes de DesarrolloWeb.com que proponen códigos para hacer esta misma funcionalidad pero de una manera muchísimo más elegante, corta, sencilla y sin posibilidad de errores. Gracias a todas las personas que han comentado y aportado algo más a este artículo!!!!!

function UltimoDia($anho,$mes){
   if (((fmod($anho,4)==0) and (fmod($anho,100)!=0)) or (fmod($anho,400)==0)) {
       $dias_febrero = 29;
   } else {
       $dias_febrero = 28;
   }
   switch($mes) {
       case 01: return 31; break;
       case 02: return $dias_febrero; break;
       case 03: return 31; break;
       case 04: return 30; break;
       case 05: return 31; break;
       case 06: return 30; break;
       case 07: return 31; break;
       case 08: return 31; break;
       case 09: return 30; break;
       case 10: return 31; break;
       case 11: return 30; break;
       case 12: return 31; break;
   }
}

Héctor A. Pinto F

Ingeniero en Informática. Santiago de Chile.

Manual