Calcular último día de cada mes con PHP

En el siguiente post voy a publicar algunas variantes en PHP para calcular el último día de un mes y un año dado (o lo que es lo mismo: cuantos días tiene un mes)

Voy a mostrar 3 opciones en orden de preferencia.

Devolver el número de días de un mes para un año y un calendario dados

Para esto utilizaremos la librería (extension=calendar.so) de PHP Calendario (php5-calendar) la cual hay que instalar primero.

Luego llamaremos a la función cal_days_in_month que nos devolverá el número de días del mes del año para el calendario especificado.

En caso de que la función cal_days_in_month no esté definida porque no podamos instalar la librería calendar entonces podremos utilizar la función date como sigue a continuación:

date('t', mktime(0, 0, 0, $month, 1, $year))

La opción t de la función date de PHP nos devuelve el número de días del mes dado.

Y si somos más artesanales podemos utilizar la función de PHP checkdate con un pequeño script:

function GetLastDayofMonth($year, $month) {
    for ($day=31; $day>=28; $day--) {
        if (checkdate($month, $day, $year)) {
            return $day;
        }
    }   
}

Recordar que la función checkdate lo que hace es validar una fecha gregoriana.

¿Cuál es vuestra preferida?

Comentarios