Cantidad de días de un mes.

Estoy medio enojado, necesitaba algo absolutamente trivial. Como conseguir la cantidad de días que hay en un mes dado usando PHP.

En mi fugaz búsqueda por google, encontré varias respuestas, todas equivocadas o increíblemente complicadas, algunas llegando a hacer un switch con la cantidad de días y una corrección por los años bisiestos.

Sin embargo, una solución más adecuada es la que propongo aquí

$dias_del_mes = date("d", mktime(0,0,0,$month+1, 0, $year));

En esa simple linea de código lo que estamos haciendo, es abusar de mktime, a sabiendas que si la parte del día es cero, lo que realmente se utiliza es el ultimo día del mes anterior. Cuyo numero es la cantidad de días total del mes.

Espero que las pobres almas que vengan después que yo encuentren esta solución o cualquier otra correcta antes de las demás que andan dando vueltas por ahí y obligan a hacer cosas realmente feas.


2 Responses to “Cantidad de días de un mes.”

  1. Gracias por compartirlo, aun no la implemente a esta funcion tuya, pero sirve muchisimo y de hecho comparto que como vos vi muchos enriedos, queria algo mas simple.

    Encontre esta otra, quizas pueda servirle a alguien, a mi me sirvio.

    $fecha = “30-03-2003”;
    $timestamp = strtotime( $fecha );
    $diasdelmes = date( “t”, $timestamp );
    echo sprintf( “Para la fecha %s el mes tenia %d dias”, $fecha, $diasdelmes );

    Fuente: http://www.forosdelweb.com/f18/como-saber-cantidad-dias-mes-526639/

    PD: la tuya me parece mas sencilla igual, gracias 😉

  2. De hecho la solución que tu propones me parece mejor. La diferencia es que mi función estaba pensada para recibir solo el mes y el año, tu codigo precisa una fecha en particular.

    Pero si asumimos el primer dia del mes que se quiere consultar, entonces funcionaría igual que lo que yo había hecho.

    Luego actualizaré esta entrada proponiendo tu solución.
    Gracias.

Discussion Area - Leave a Comment