PHP – Saber primer y último día de semana y mes (2)

Ya vimos una manera con PHP de saber primer y último día de semana y mes (2). En este artículo veremos otra manera un poco más complicada, pero más efectiva.

Comencemos por ver el código PHP que permite ver el primer día de la semana. Fijaos que se utiliza mucho la función date() de PHP. Esta función devuelve muchos parámetros diferentes. Es importante saber qué tipos de devoluciones hace esta función, porque son esenciales para trabajar con fechas. Veamos un ejemplo:

public function primerDiaSemana($year, $month, $day){
 // Número de la semana
 $semana=date("W",mktime(0,0,0,$month,$day,$year));
 // Día de la semana de la fecha dada
 $diaSemana=date("w",mktime(0,0,0,$month,$day,$year));
 // 0 es el domingo
 if($diaSemana==0){ $diaSemana=7; }
 // A la fecha recibida, le restamos el dia de la semana y obtendremos el lunes
 $primerDia= date("Y-m-d",mktime(0,0,0,$month,$day-$diaSemana+1,$year));
 return $primerDia;
}

Si os fijáis en el ejemplo, date(«w»,mktime(0,0,0,$month,$day,$year)) le pasamos el parámetro «W» para indicarle que devuelva el número de la semana, del 0 al 6, de la fecha que le pasamos también como parámetro..

Veamos el código PHP que permite saber el último día de la semana:

public function ultimoDiaSemana($year, $month, $day){
 // Número de la semana
 $semana=date("W",mktime(0,0,0,$month,$day,$year));
 // Día de la semana de la fecha dada 
 $diaSemana=date("w",mktime(0,0,0,$month,$day,$year));
 // 0 es domingo
 if($diaSemana==0){ $diaSemana=7; }
 // A la fecha recibida, le sumamos el dia de la semana menos siete y obtendremos el domingo
 $ultimoDia=date("Y-m-d",mktime(0,0,0,$month,$day+(7-$diaSemana),$year));
 
 return $ultimoDia;
}

Por último, el código PHP que permite saber el último día del mes

public function ultimoDiaMes($year, $month){
 // Obtenemos ultimo dia mes
 $ultimoDia= date("d",(mktime(0,0,0,$month+1,1,$year)-1));
 return $ultimoDia;
}

Siguiendo con la explicación de la función date, podemos ver que en este ejemplo date(«d»,(mktime(0,0,0,$month+1,1,$year)-1)) le pasamos el parámetro «d» con lo que le estamos pidiendo que nos devuelva el día del mes de la fecha que también le pasamos por parámetro, pero en formato de dos números del 01 al 31.

Espero que el artículo PHP – Saber primer y último día de semana y mes (2), os sea de utilida. No olvidéis mirar en los siguientes enlaces para ver otra manera de ver en PHP para saber primer y último día de semana y mes.


Més información