Vamos a crear un calendario en html con PHP, este calendario se puede seleccionar de que mes y año lo deseamos renderizar.
El calendario siempre es útil para mostrar eventos, agendar, entre otras cosas.
Codigo
El código es una mezcla de HTML y PHP, primero vamos a crear la base de un documento HTML y en el body del documento vamos a agregar el código PHP.
Primero vamos a crear un formulario que sirve para seleccionar el mes y el año.
<form>
Mes <input type="text" name="m" required>
Año <input type="text" name="y" required>
<input type="submit" value="Cargar">
</form>
El siguiente código PHP sirve para asignar la fecha inicial, en caso de que en el formulario no se seleccione una fecha se tomara por default el 1 de enero del 2020.
$start = strtotime("2020-01-01");
if(isset($_GET["m"]) && isset($_GET["y"]) && $_GET["m"]!="" && $_GET["y"]!=""){
$start = strtotime($_GET["y"]."-".$_GET["m"]."-01");
}else{
$start = strtotime("2020-01-01");
}
echo "<h2>".date("F, Y", $start)."</h2>";
Por ultimo vamos a crear una tabla en HTML, la tabla tendrá 6 filas que serán las semanas y cada fila tendrá 7 columnas que son los días de la semana.
<table border="2">
<thead>
<th>Domingo</th>
<th>Lunes</th>
<th>Martes</th>
<th>Miercoles</th>
<th>Jueves</th>
<th>Viernes</th>
<th>Sabado</th>
</thead>
<?php
$index = 0;
$startpos =0;
$continue2 = 1;
for($i=1; $i<=6; $i++): $index++; ?>
<tr>
<?php for($j=0; $j<7; $j++):?>
<td>
<?php if($startpos>0 && $continue2<date("t", $start)){ $continue2++; echo "<h4>".$continue2."</h4>"; }?>
<?php if($i==1 && $j==date("w", $start)):?>
<h4>1</h4>
<?php
$startpos=$index;
endif; ?>
</td>
<?php endfor;?>
</tr>
<?php endfor; ?>
</table>
Y listo. Hacemos el recorrido, tomamos en cuenta la fecha inicial y obtenemos el día de la semana, a partir del día de la semana 1 empezamos el index, después usamos el semáforo startpos para saber en cual indice empezamos y después usamos continue2 para seguir el conteo de días.
Resultado
Y ya tenemos el calendario listo.
Desde el formulario escribimos un mes, año y al hacer click en cargar de mostrara el calendario del mes elegido.
Pingback: Paginacion de Calendario por Mes con PHP – Evilnapsis
Excelente idea.