Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Dimitar Stefanov en 10 de Mayo 2016, 17:04

Título: PHP Funciones de fecha ejemplo mostrar y maquetar un calendario mes CU00830B
Publicado por: Dimitar Stefanov en 10 de Mayo 2016, 17:04
Buenas tardes, expongo una posible solución del ejercicio CU00830B del curso PHP desde cero.

Citar
EJERCICIO

Crea un documento HTML que conste de un título h1 con el texto <<Calendario>>. En la página deberá mostrarse el mes y año actuales (en el momento en que hagas el ejercicio) y para cada día del mes, indicar si es lunes, martes, miércoles, jueves, viernes, sábado o domingo.

Ejemplo: suponiendo que hagas el ejercicio en mayo de 2050, debería mostrarse:

Día 1: Domingo, Día 2: Lunes, Día 3: Martes, Día 4: Miércoles, … etc. hasta Día 31: Martes.

Ampliación voluntaria del ejercicio: si tienes conocimiento de maquetación con HTML y CSS te proponemos que cambies el aspecto para que en lugar de mostrarse como texto, el calendario se muestre con aspecto de calendario habitual. Para la maquetación puedes usar una tabla de 7 columnas por 7 filas (total 49 celdas) con ancho de tabla 300 píxeles y tamaño de fuente en la tabla 24 píxeles. La primera columna corresponderá a lunes y la última a domingo como mostramos en el siguiente ejemplo.

Código: [Seleccionar]
<?php 

$time time();
$primerDiaDelMes $time - ((date("j",$time)-1)*24*60*60);
$primerDeLaSemana date("N"$primerDiaDelMes);
$unDiaContiene 24*60*60;
$diasDeLaSemana = ["Lu""Ma""Mi""Ju""Vi""Sa""Do"];
$mesesDelAnyo = ["Enero""Febrero""Marzo""Abril""Mayo""Junio""Julio""Agosto""Septiembre""Octubre""Noviembre""Diciembre"];

echo "<br>";
echo "<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>Document</title>
<style type='text/css'>
div{
text-align: center;
}
table{
text-align: center;
margin-left: 41%;
}
</style>
</head>
<body>
<div>
<h1>"
.$mesesDelAnyo[(date("n"$time)-1)]." de ".date("Y"$time)."</h1>
<table style='font-size: 1.5em;'>
<tr>
<th>Lu</th>
<th>Ma</th>
<th>Mi</th>
<th>Ju</th>
<th>Vi</th>
<th>Sa</th>
<th>Do</th>
</tr>"
;
for($i 0$i<$primerDeLaSemana-1$i++){
if($i == 0){
echo "<tr><td></td>";
}else{
echo "<td></td>";
}
};

for($j 0$j date("t"$time); $j++){
if(date("N"$primerDiaDelMes+($unDiaContiene*$j)) == 7){
echo "<td>".date("d",$primerDiaDelMes+($unDiaContiene*$j))."</td></tr>";
}else if(date("N"$primerDiaDelMes+($unDiaContiene*$j)) == 1){
echo "<tr><td>".date("d",$primerDiaDelMes+($unDiaContiene*$j))."</td>";
}else{
echo "<td>".date("d",$primerDiaDelMes+($unDiaContiene*$j))."</td>";
}
};
echo "</tr>
</table>
</div>
</body>
</html>"
?>

Gracias.
Título: Re:CU00830B Funciones de fecha en PHP
Publicado por: pedro,, en 12 de Mayo 2016, 13:36
Hola dimiste.

El ejercicio está bien resuelto.

Solo comentar que la variable $diasDeLaSemana no la usas, puesto que la fila donde deberían de ir la rellenaste manualmente...

Código: [Seleccionar]
<tr>
<th>Lu</th>
<th>Ma</th>
<th>Mi</th>
<th>Ju</th>
<th>Vi</th>
<th>Sa</th>
<th>Do</th>
</tr>";

Saludos. ;D
Título: Re:CU00830B Funciones de fecha, ejemplo calendario. PHP
Publicado por: Dimitar Stefanov en 12 de Mayo 2016, 22:36
Buenas noches, Pedro.

Gracias por corregirme el ejercicio.

Es verdad, jejejeje. Me he descuidado. Creé la array "$diasDeLaSemana" y luego no la utilicé, jajaja.

Saludos. :)