Don't like ads? PRO users don't see any ads ;-)
Guest

Calendario PHP

By: a guest on Jun 13th, 2012  |  syntax: PHP  |  size: 3.54 KB  |  hits: 25  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. <?php
  2.         $ano = isset($_GET['ano']) ? $_GET['ano'] : date("Y",time());//recibe parametros de año
  3.         $mes = isset($_GET['mes']) ? $_GET['mes'] : date("n",time());//recibe parametros de mes
  4.         $meses = array(//define nombres de los meses
  5.                                 1=>"Enero",
  6.                                 2=>"Febrero",
  7.                                 3=>"Marzo",
  8.                                 4=>"Abril",
  9.                                 5=>"Mayo",
  10.                                 6=>"Junio",
  11.                                 7=>"Julio",
  12.                                 8=>"Agosto",
  13.                                 9=>"Septiembre",
  14.                                 10=>"Octubre",
  15.                                 11=>"Noviembre",
  16.                                 12=>"Diciembre"
  17.                         );
  18.         $dias = array(//define las iniciales de los dias
  19.                                 "D",
  20.                                 "L",
  21.                                 "M",
  22.                                 "M",
  23.                                 "J",
  24.                                 "V",
  25.                                 "S"
  26.                         );
  27.         $dias_x_mes = cal_days_in_month(CAL_GREGORIAN, $mes, $ano);//obtener el numero de dias del mes
  28.         $inicio_mes_dia = jddayofweek (cal_to_jd(CAL_GREGORIAN, $mes, 1, $ano));//obtener el dia que inicia el mes
  29.         //se definen los parametros para navegar en los meses anterior y siguiente
  30.         $ant['mes'] = ($mes == 1) ? 12 : ($mes-1);
  31.         $ant['ano'] = ($mes == 1) ? ($ano-1) : $ano;
  32.         $sig['mes'] = ($mes == 12) ? 1 : ($mes+1);
  33.         $sig['ano'] = ($mes == 12) ? ($ano+1) : $ano;
  34. ?>
  35. <html>
  36.         <head>
  37.                 <title>Calendario</title>
  38.                 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  39.                 <style>
  40.                         body{
  41.                                 font-family: Helvetica, Arial, Verdana, Sans-serif;
  42.                                 font-size:12px;
  43.                         }
  44.                         .titulocal{
  45.                                 width:210px;
  46.                                 text-align:center;
  47.                                 color:DimGray;
  48.                                 padding:5px 0px 5px 0px;
  49.                         }
  50.                         .titulocal a{
  51.                                 text-decoration:none;
  52.                                 color: DimGray;
  53.                         }
  54.                         .tablacal{
  55.                                 width:210px;
  56.                                 padding:0;
  57.                                 border-collapse: collapse;
  58.                                 border:1px solid LightGrey;
  59.                                 font-size:12px;
  60.                         }
  61.                         .tablacal th{
  62.                                 width:30px;
  63.                                 background-color:LightGrey;
  64.                                 border-collapse: collapse;
  65.                         }
  66.                         .tablacal td{
  67.                                 color:Black;
  68.                                 text-align:center;
  69.                         }
  70.                 </style>
  71.         </head>
  72.         <body>
  73.                 <div class='titulocal'><!--navegacion anterior y siguiente -->
  74.                         <a href='<?php echo $_SERVER['PHP_SELF'] ?>?ano=<?php echo $ant['ano'] ?>&mes=<?php echo $ant['mes'] ?>' id='anterior'><</a>
  75.                         &nbsp;<?php echo $meses[$mes]." ".$ano?>&nbsp;
  76.                         <a href='<?php echo $_SERVER['PHP_SELF'] ?>?ano=<?php echo $sig['ano'] ?>&mes=<?php echo $sig['mes'] ?>' id='siguiente'>></a>
  77.                 </div>
  78.                 <table class='tablacal'><!--inicio de la tabla del calendario-->
  79.                         <tr>
  80. <?php
  81.         for ($dias_semana=0; $dias_semana<count($dias); $dias_semana++){//encabezados con los nombres de los dias
  82. ?>
  83.                                 <th class='nombredias'><?php echo $dias[$dias_semana] ?></th>
  84. <?php
  85.         }
  86. ?>
  87.                         <tr>
  88. <?php
  89.         for($dia_mes=1; $dia_mes<=$dias_x_mes; $dia_mes++){
  90.                 if(jddayofweek (cal_to_jd(CAL_GREGORIAN, $mes, $dia_mes, $ano)) == 0 || $dia_mes == 1){
  91. ?>
  92.                         <tr>
  93. <?php
  94.                 }
  95.                 if($dia_mes == 1){
  96.                         for($dias_antes=0; $dias_antes<$inicio_mes_dia; $dias_antes++){//espacios en blanco que son los dias finales del mes anterior
  97. ?>
  98.                                 <td class='dia'>&nbsp;</td>
  99. <?php
  100.                         }                      
  101.                 }
  102.                 $dia = ($dia_mes<10) ? "0".$dia_mes : $dia_mes;
  103.                 $mesactual = ($mes<10) ? "0".$mes : $mes;
  104.                                 //se muestran cada uno de los dias
  105. ?>
  106.                                 <td class='dia'><?php echo $dia_mes ?></td>
  107. <?php
  108.                 if($dia_mes == $dias_x_mes){
  109.                         $dias_fin = 6 - jddayofweek (cal_to_jd(CAL_GREGORIAN, $mes, $dias_x_mes, $ano));
  110.                         for($dias_despues=0; $dias_despues<$dias_fin; $dias_despues++){//espacios en blanco que son los primeros dias del mes siguiente
  111. ?>
  112.                                 <td class='dia'>&nbsp;</td>
  113. <?php
  114.                         }
  115.                 }
  116.                 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
  117. ?>
  118.                         </tr>
  119. <?php
  120.                 }              
  121.         }
  122. ?>
  123.                 </table><!--fin de la tabla del calendario-->
  124.         <body>
  125. </html>