Evilnapsis

Programming, Hacking and More

PHP Stuffs

Crear Calendario en una Tabla HTML con PHP

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.

Agustin Ramos

Desarrollador de Software

2 thoughts on “Crear Calendario en una Tabla HTML con PHP

Leave a Reply