Ver Mensaje Individual
  #11 (permalink)  
Antiguo 03/08/2015, 13:43
Avatar de chronos682
chronos682
 
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 3 meses
Puntos: 69
Respuesta: Tabla Html Php

El código tiene varios errores: si tu por ejemplo imprimes el valor de la variable calendario con var_dump te vas a dar cuenta que siempre devuelve el mismo día de la semana, esto es porque estás usando strtotime en una variable que se supone ya está en formato time (Unix):


$diasemana = date( 'w', strtotime($i) );

Déjalo así:

$diasemana = date( 'w', $i );

Si observas también la variable $semana nunca aumenta porque estás haciendo mal la comparación:

Código PHP:
Ver original
  1. if($diasemana == 7){
  2.         $semana++;
  3.     }

No existe el día 7 porque date devuelve máximo hasta 6. Debería quedar así:

Código PHP:
Ver original
  1. if($diasemana == 6){
  2.         $semana++;
  3.     }

Y por ultimo para mostrar la tabla con las fechas tienes que cambiar el código porque primero tienes que saber a qué día de la semana corresponde el primer valor del array y después añadirlo en la tabla a nivel de ese día, porque así como tienes el código va a empezar siempre por lunes sin importar si la fecha corresponde a un jueves por ejemplo.

Mas o menos así debería quedar el código, pero debes arreglar lo que te dije al final:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $fechaInicio=strtotime("25-02-2008");
  4. $fechaFin=strtotime("01-04-2008");
  5.  
  6. $semana=1;
  7.  
  8.  
  9. /* avanzamos de a 1 dia; 1 dia ? 86400 segundos */
  10. for($i=$fechaInicio; $i<=$fechaFin; $i+=86400){
  11.    
  12.     /* obtenemos el dia de semana como numero; Domingo = 0, Lunes = 1... Sabado = 6 */
  13.     $diasemana = date( 'w', $i );
  14.    
  15.    
  16.     /* solo agregamos los dias Lunes, Martes, Miercoles, Jueves y Viernes */
  17.     if(($diasemana >= 1) && ($diasemana <=5 ))
  18.     {
  19.         /* obtenemos el calendario en formato numerico STR, [Semana] [Dia Semana] = Fecha */
  20.         $calendario[ $semana ][ $diasemana ] = $i;
  21.     }
  22.    
  23.     /* imprimir fechas hacia abajo, en formato dia-mes-año */
  24.     //echo date('d/m/Y',$calendario[$semana][$diasemana]). "<br>";
  25.    
  26.     /* aumentamos la cantidad de semanas */
  27.     if($diasemana == 6){
  28.         $semana++;
  29.     }
  30.    
  31. }
  32. ?>
  33.  
  34. <!DOCTYPE html>
  35. <html>
  36.  
  37.     <head>
  38.     </head>
  39.  
  40.     <body>
  41.  
  42.         <table border="1">
  43.             <thead>
  44.                 <tr>
  45.                     <td>Lunes</td>
  46.                     <td>Martes</td>  
  47.                     <td>Miércoles</td>  
  48.                     <td>Jueves</td>  
  49.                     <td>Viernes</td>      
  50.                 </tr>
  51.             </thead>
  52.  
  53.             <tbody>
  54.                 <?php
  55.                     for($i = 1; $i <= count($calendario); $i++)
  56.                     {
  57.                         echo "<tr>";
  58.                             $num = count($calendario[$i]);
  59.                             for ($n = 1; $n <= $num; $n++)
  60.                             {
  61.                                 echo "<td>";
  62.                                     echo date("d/m/Y",$calendario[$i][$n]);
  63.                                 echo "</td>";
  64.                             }
  65.                         echo "</tr>";
  66.                     }
  67.                 ?>
  68.             </tbody>
  69.         </table>
  70.     </body>
  71.    
  72. </html>
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]

Última edición por chronos682; 03/08/2015 a las 19:38