Calendario con paginacion de mes
Este es un calendario que pagina el mes y su año es infinito, encontrar el codigo de un calendario paginado funcional es siempre dificil pues aqui les entrego uno correcto, cuando miren el codigo para quienes no conocian el operador ternario , busquen sobre el operador ternario que hace parte del codigo del calenadario, es similar o igual al condicional if despues de que lo comprendan veran mas facil la comprencion del calendario.
Otra cosa tan importante que deben aprender es sobre el paso de variables por url es fundamental y la mayoria de portales dinamicos usan esa tecnica, escuchen consejos.
Compartire el codigo de agregar amigos al estilo facebook que se trata de jugar con los id de los usuarios, busquen en mis post de taringa, es un milagro tener ese codigo asi que usenlo estudienlo ya uno practicando llegara lejos aprendera mas rapido despegara en PHP por eso es vital compartir la info.
Es un buen ejercicio que junto con el codigo de agregar amigos lo ponen a uno a volar con PHP y MSYQL.
Ya saben para los primiparos en desarrollo web siempre se usa o xampp o wampserver yo uso wampserver para probar mis proyectos web.
<?php
$ano = isset($_GET['ano']) ? $_GET['ano'] : date("Y",time());//recibe parametros de ao
$mes = isset($_GET['mes']) ? $_GET['mes'] : date("n",time());//recibe parametros de mes
$meses = array(//define nombres de los meses
1=>"Enero",
2=>"Febrero",
3=>"Marzo",
4=>"Abril",
5=>"Mayo",
6=>"Junio",
7=>"Julio",
8=>"Agosto",
9=>"Septiembre",
10=>"Octubre",
11=>"Noviembre",
12=>"Diciembre"
);
$dias = array(//define las iniciales de los dias
"D",
"L",
"M",
"M",
"J",
"V",
"S"
);
$dias_x_mes = cal_days_in_month(CAL_GREGORIAN, $mes, $ano);//obtener el numero de dias del mes
$inicio_mes_dia = jddayofweek (cal_to_jd(CAL_GREGORIAN, $mes, 1, $ano));//obtener el dia que inicia el mes
//se definen los parametros para navegar en los meses anterior y siguiente
$ant['mes'] = ($mes == 1) ? 12 : ($mes-1);
$ant['ano'] = ($mes == 1) ? ($ano-1) : $ano;
$sig['mes'] = ($mes == 12) ? 1 : ($mes+1);
$sig['ano'] = ($mes == 12) ? ($ano+1) : $ano;
?>
<html>
<head>
<title>Calendario</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style>
body{
font-family:Helvetica, Arial, Verdana, Sans-serif;
font-size:12px;
}
.titulocal{
width:210px;
text-align:center;
colorimGray;
padding:5px 0px 5px 0px;
}
.titulocal a{
text-decoration:none;
color: DimGray;
}
.tablacal{
width:210px;
padding:0;
border-collapse: collapse;
border:1px solid LightGrey;
font-size:12px;
}
.tablacal th{
width:30px;
background-color:LightGrey;
border-collapse: collapse;
}
.tablacal td{
color:Black;
text-align:center;
}
</style>
</head>
<body>
<div class='titulocal'><!--navegacion anterior y siguiente -->
<a href='<?php echo $_SERVER['PHP_SELF'] ?>?ano=<?php echo $ant['ano'] ?>&mes=<?php echo $ant['mes'] ?>' id='anterior'><</a>
<?php echo $meses[$mes]." ".$ano?>
<a href='<?php echo $_SERVER['PHP_SELF'] ?>?ano=<?php echo $sig['ano'] ?>&mes=<?php echo $sig['mes'] ?>' id='siguiente'>></a>
</div>
<table class='tablacal'><!--inicio de la tabla del calendario-->
<tr>
<?php
for ($dias_semana=0; $dias_semana<count($dias); $dias_semana++){//encabezados con los nombres de los dias
echo "<th class='nombredias'>". $dias[$dias_semana]."</th> ";
}
?>
<tr>
<?php
for($dia_mes=1; $dia_mes<=$dias_x_mes; $dia_mes++){
if(jddayofweek (cal_to_jd(CAL_GREGORIAN, $mes, $dia_mes, $ano)) == 0 || $dia_mes == 1){
?>
<tr>
<?php
}
if($dia_mes == 1){
for($dias_antes=0; $dias_antes<$inicio_mes_dia; $dias_antes++){//espacios en blanco que son los dias finales del mes anterior
?>
<td class='dia'> </td>
<?php
}
}
$dia = ($dia_mes<10) ? "0".$dia_mes : $dia_mes;
$mesactual = ($mes<10) ? "0".$mes : $mes;
//se muestran cada uno de los dias
?>
<td class='dia'><?php echo $dia_mes ?></td>
<?php
if($dia_mes == $dias_x_mes){
$dias_fin = 6 - jddayofweek (cal_to_jd(CAL_GREGORIAN, $mes, $dias_x_mes, $ano));
for($dias_despues=0; $dias_despues<$dias_fin; $dias_despues++){//espacios en blanco que son los primeros dias del mes siguiente
?>
<td class='dia'> </td>
<?php
}
}
if(jddayofweek (cal_to_jd(CAL_GREGORIAN, $mes, $dia_mes, $ano)) == 6 || $dia_mes==$dias_x_mes){//fin del renglon al final de la semana o del mes
?>
</tr>
<?php
}
}
?>
</table><!--fin de la tabla del calendario-->
<body>
</html>
Este es un calendario que pagina el mes y su año es infinito, encontrar el codigo de un calendario paginado funcional es siempre dificil pues aqui les entrego uno correcto, cuando miren el codigo para quienes no conocian el operador ternario , busquen sobre el operador ternario que hace parte del codigo del calenadario, es similar o igual al condicional if despues de que lo comprendan veran mas facil la comprencion del calendario.
Otra cosa tan importante que deben aprender es sobre el paso de variables por url es fundamental y la mayoria de portales dinamicos usan esa tecnica, escuchen consejos.
Compartire el codigo de agregar amigos al estilo facebook que se trata de jugar con los id de los usuarios, busquen en mis post de taringa, es un milagro tener ese codigo asi que usenlo estudienlo ya uno practicando llegara lejos aprendera mas rapido despegara en PHP por eso es vital compartir la info.
Es un buen ejercicio que junto con el codigo de agregar amigos lo ponen a uno a volar con PHP y MSYQL.
Ya saben para los primiparos en desarrollo web siempre se usa o xampp o wampserver yo uso wampserver para probar mis proyectos web.
<?php
$ano = isset($_GET['ano']) ? $_GET['ano'] : date("Y",time());//recibe parametros de ao
$mes = isset($_GET['mes']) ? $_GET['mes'] : date("n",time());//recibe parametros de mes
$meses = array(//define nombres de los meses
1=>"Enero",
2=>"Febrero",
3=>"Marzo",
4=>"Abril",
5=>"Mayo",
6=>"Junio",
7=>"Julio",
8=>"Agosto",
9=>"Septiembre",
10=>"Octubre",
11=>"Noviembre",
12=>"Diciembre"
);
$dias = array(//define las iniciales de los dias
"D",
"L",
"M",
"M",
"J",
"V",
"S"
);
$dias_x_mes = cal_days_in_month(CAL_GREGORIAN, $mes, $ano);//obtener el numero de dias del mes
$inicio_mes_dia = jddayofweek (cal_to_jd(CAL_GREGORIAN, $mes, 1, $ano));//obtener el dia que inicia el mes
//se definen los parametros para navegar en los meses anterior y siguiente
$ant['mes'] = ($mes == 1) ? 12 : ($mes-1);
$ant['ano'] = ($mes == 1) ? ($ano-1) : $ano;
$sig['mes'] = ($mes == 12) ? 1 : ($mes+1);
$sig['ano'] = ($mes == 12) ? ($ano+1) : $ano;
?>
<html>
<head>
<title>Calendario</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style>
body{
font-family:Helvetica, Arial, Verdana, Sans-serif;
font-size:12px;
}
.titulocal{
width:210px;
text-align:center;
colorimGray;
padding:5px 0px 5px 0px;
}
.titulocal a{
text-decoration:none;
color: DimGray;
}
.tablacal{
width:210px;
padding:0;
border-collapse: collapse;
border:1px solid LightGrey;
font-size:12px;
}
.tablacal th{
width:30px;
background-color:LightGrey;
border-collapse: collapse;
}
.tablacal td{
color:Black;
text-align:center;
}
</style>
</head>
<body>
<div class='titulocal'><!--navegacion anterior y siguiente -->
<a href='<?php echo $_SERVER['PHP_SELF'] ?>?ano=<?php echo $ant['ano'] ?>&mes=<?php echo $ant['mes'] ?>' id='anterior'><</a>
<?php echo $meses[$mes]." ".$ano?>
<a href='<?php echo $_SERVER['PHP_SELF'] ?>?ano=<?php echo $sig['ano'] ?>&mes=<?php echo $sig['mes'] ?>' id='siguiente'>></a>
</div>
<table class='tablacal'><!--inicio de la tabla del calendario-->
<tr>
<?php
for ($dias_semana=0; $dias_semana<count($dias); $dias_semana++){//encabezados con los nombres de los dias
echo "<th class='nombredias'>". $dias[$dias_semana]."</th> ";
}
?>
<tr>
<?php
for($dia_mes=1; $dia_mes<=$dias_x_mes; $dia_mes++){
if(jddayofweek (cal_to_jd(CAL_GREGORIAN, $mes, $dia_mes, $ano)) == 0 || $dia_mes == 1){
?>
<tr>
<?php
}
if($dia_mes == 1){
for($dias_antes=0; $dias_antes<$inicio_mes_dia; $dias_antes++){//espacios en blanco que son los dias finales del mes anterior
?>
<td class='dia'> </td>
<?php
}
}
$dia = ($dia_mes<10) ? "0".$dia_mes : $dia_mes;
$mesactual = ($mes<10) ? "0".$mes : $mes;
//se muestran cada uno de los dias
?>
<td class='dia'><?php echo $dia_mes ?></td>
<?php
if($dia_mes == $dias_x_mes){
$dias_fin = 6 - jddayofweek (cal_to_jd(CAL_GREGORIAN, $mes, $dias_x_mes, $ano));
for($dias_despues=0; $dias_despues<$dias_fin; $dias_despues++){//espacios en blanco que son los primeros dias del mes siguiente
?>
<td class='dia'> </td>
<?php
}
}
if(jddayofweek (cal_to_jd(CAL_GREGORIAN, $mes, $dia_mes, $ano)) == 6 || $dia_mes==$dias_x_mes){//fin del renglon al final de la semana o del mes
?>
</tr>
<?php
}
}
?>
</table><!--fin de la tabla del calendario-->
<body>
</html>

