Cómo rehacer array de fechas al cambiar de año
Tengo el siguiente código que lo que me hace es un array con las fechas del año, que utilizo para un calendario:
////EMPEZAMOS A FORMAR EL ARRAY CON LOS DATOS DE DÍAS DEL AÑO
$format = 'Y-m-d';
$cadenafechainicio="".$añoactual."-01-01";
$cadenafechafin="".$añoactual."-12-31";
$fechainicio = DateTime::createFromFormat($format, $cadenafechainicio);
$fechafin = DateTime::createFromFormat($format, $cadenafechafin);
$fechaintervalo = new DateInterval('P1D');
$fechainicio = new DateTime('first day of January');
$fechafin = new DateTime('last day of December');
$fechaintervalo1 = new DateInterval('P1D');
$dias = new DatePeriod($fechainicio, $fechaintervalo1, $fechafin);
$array_dias = [];
foreach ($dias as $dia) {
// Asignamos un número por cada día de la semana 0-domingo y 6-sábado
$mes = $dia->format('n');
$diasemana = $dia->format('w');
// Sólo imprime si es viernes, sábado o domingo
if ($diasemana !== '1' && $diasemana !== '2' && $diasemana !== '3' && $diasemana !== '4' ) {
if (!array_key_exists($mes, $array_dias)) { $array_dias[$mes] = []; }
$array_dias[$mes][] = $dia->format('Y-m-d');
} //FIN del if
} //FIN del foreach
////TERMINAMOS DE FORMAR EL ARRAY CON LOS DATOS DE DÍAS DEL AÑO
Con este otro código me voy moviendo por el calendario mes a mes y año a año:
////INICIO PAGINADO DEL CALENDARIO
if(!$_GET['mesactual'] || !$_GET['añoactual']){
$mesactual=date('n');
$añoactual=date('Y');
} else {
$mesactual=$_GET['mesactual'];
$añoactual=$_GET['añoactual'];
$mes=$_GET['mes'];
if($mes=='ant'){
if($_GET['mesactual']==1){ $mesactual=12; $añoactual--; } else { $mesactual--; }
} elseif($mes=='sig'){
if($_GET['mesactual']==12){ $mesactual=1; $añoactual++; } else { $mesactual++; }
}
}
////FIN PAGINADO DEL CALENDARIO
¿Cómo provoco que se recalcule el array al cambiar de año? He probado varias cosas, debe ser más sencillo de lo que me pienso, pero estoy espeso... ;-p