Foros del Web » Programando para Internet » PHP »

Calendario con tablas.

Estas en el tema de Calendario con tablas. en el foro de PHP en Foros del Web. Hola. Trataré de ser lo más explícito posible con el problema que tengo, quiero hacer un calendario con tablas. Digamos que éste es el código: ...
  #1 (permalink)  
Antiguo 03/07/2009, 17:34
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Calendario con tablas.

Hola.

Trataré de ser lo más explícito posible con el problema que tengo, quiero hacer un calendario con tablas.

Digamos que éste es el código:

Código PHP:
<table align="center">
<
tr><td id="tagline"> <p>&nbsp;</p>
  <
p>PROGRAMACIÓN DE COSTOS </p></td></tr>
<
tr><td>&nbsp;</td></tr>
</
table>
<
table width="924" height="242" border="1" bordercolor="#FF9933">
  <
tr>
    <
th colspan="13" scope="row" class="bodyText"><div align="left">Titulo1</div></th>
  </
tr>
  <
tr>
    <
th colspan="13" scope="row" class="bodyText"><div align="left">Ruta </div></th>
  </
tr>

  <
tr>
    <
th colspan="13" scope="row" class="bodyText"><div align="left">Actividad: <input type="text" name="actividad" id="actividad" size="50"/></div></th>
  </
tr>
  <
tr>
    <
th colspan="13" scope="row">&nbsp;</th>
  </
tr>
    <
th width="77"  rowspan="2" scope="row">&nbsp;</th>
    
    <
td colspan="12" class="bodyText"><div align="center">2009</div></td>
  </
tr>
  <
tr class="bodyText">
    <
td width="77" class="bodyText">ENE</td>
    <
td width="77" class="bodyText">FEB</td>
    <
td width="77" class="bodyText">MAR</td>
    <
td width="77" class="bodyText">ABR</td>
    <
td width="77" class="bodyText">MAY</td>
    <
td width="77" class="bodyText">JUN</td>
    <
td width="77" class="bodyText">JUL</td>
    <
td width="77" class="bodyText">AGO</td>
    <
td width="77" class="bodyText">SEP</td>
    <
td width="77" class="bodyText">OCT</td>
     <
td width="77" class="bodyText">NOV</td>
     <
td width="77" class="bodyText">DIC</td>
  </
tr>
  <
tr>
    <
th scope="row" class="bodyText">CAL1</th>
    <
td><input name="nombre" type="text" value="12500.00" size="15"/></td>
    <
td> <input name="nombre" type="text" value="12500.00" size="15"/></td>
    <
td> <input name="nombre" type="text" value="12500.00" size="15"/></td>
    <
td> <input name="nombre" type="text" value="12500.00" size="15"/></td>
    <
td> <input name="nombre" type="text" value="12500.00" size="15" /></td>
    <
td> <input name="nombre" type="text" value="12500.00" size="15"/></td>
    <
td> <input name="nombre" type="text" value="12500.00" size="15"/></td>
    <
td> <input name="nombre" type="text" value="12500.00" size="15"/></td>
    <
td> <input name="nombre" type="text" value="12500.00" size="15" /></td>
    <
td> <input name="nombre" type="text" value="12500.00" size="15" /></td>
    <
td> <input name="nombre" type="text" value="12500.00" size="15" /></td>
    <
td> <input name="nombre" type="text" value="12500.00" size="15" /></td>
  </
tr>
  <
tr>
    <
th scope="row" class="bodyText">CAL2</th>
    <
td><input name="nombre" type="text" value="13500.00" size="15"/></td>
    <
td> <input name="nombre" type="text" value="13500.00" size="15"/></td>
    <
td> <input name="nombre" type="text" value="13500.00" size="15"/></td>
    <
td> <input name="nombre" type="text" value="13500.00" size="15"/></td>
    <
td> <input name="nombre" type="text" value="13500.00" size="15" /></td>
    <
td> <input name="nombre" type="text" value="13500.00" size="15"/></td>
    <
td> <input name="nombre" type="text" value="13500.00" size="15"/></td>
    <
td> <input name="nombre" type="text" value="13500.00" size="15"/></td>
    <
td> <input name="nombre" type="text" value="13500.00" size="15" /></td>
    <
td> <input name="nombre" type="text" value="13500.00" size="15" /></td>
    <
td> <input name="nombre" type="text" value="13500.00" size="15" /></td>
    <
td> <input name="nombre" type="text" value="13500.00" size="15" /></td>
  </
tr>
</
table
Ahí sólo aparece de ENERO a DICIEMBRE del 2009, lo que yo busco es que dependiendo de una variable que contiene una fecha de inicio y otra que tiene una fecha de término, que recibo desde otra página, digamos que las variables están así:

Código PHP:
$fechainicio"15-Feb-09";
$fechatermino"24-Ene-10"
Que me aparezca el calendario en tablas como el que puse arriba, pero en vez que sea de Enero a Diciembre del 2009, aparezca de Febrero del 2009 a Enero del 2010, dependiendo obviamente del valor de las variables.

¿Hay alguna forma de realizar esto?

Les agradezco de antemano su ayuda.

Saludos.
  #2 (permalink)  
Antiguo 06/07/2009, 08:01
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Calendario con tablas.

Puedes hacerlo de esta forma:

1. Tendrias que crear un array con los meses.
2. Luego asignar una variable con la fecha de comienzo.
3. Creas una variable algo asi $n = 0;
3. Creas un for que llegue hasta 12 y vaya aumentando el mes que existe en la variable de fecha de comienzo
4. Dentro de ese for haces una ecuacion que mire el count($array_meses) y creas condiciones que verifique si sobrepaso el count($array_meses). Si no ha sobrepasado el count le asignas al valor de $n el numero que esta en el for. Si sobre paso el count entonces en una de las condiciones haces que el $n comienze en cero y luego incrementas en el proximo.
5. Vas uniendo esa variable que estas creando con la ecuacion a la fecha

Bueno espero me haya dejado entender
  #3 (permalink)  
Antiguo 06/07/2009, 08:31
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Calendario con tablas.

Hasta el paso 4 me perdí, ¿me podrías dar un ejemplo? hehe

Gracias por tu ayuda, saludos.
  #4 (permalink)  
Antiguo 06/07/2009, 08:51
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Calendario con tablas.

Es sencillo, mira

Código PHP:
//El array cambialo a nombres.  Debe haber un valor de espacio al principio 
//para que vea las fechas correctas.  Sino has la prueba 
//para que veas que error te va a salir si le quitas ese espacio
$meses = array("",1,2,3,4,5,6,7,8,9,10,11,12);
//Si la fecha es completa vas a tener que usar un explode para sacar el mes
$fecha date("m");
//Es importante convertirlo a un integro (int)$fecha para que pueda 
//leer el array bien la primera vez que se llama.
$n=(int)$fecha;
for(
$i=0$i<count($meses); $i++){
  if(
$n<count($meses)){
    echo 
$meses[$n++]."<br />";
  }else{
    
$n=1;
  }

  #5 (permalink)  
Antiguo 06/07/2009, 09:19
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Calendario con tablas.

Hmm pero eso no me va a crear las tablas, sólamente imprimiría los meses, ¿no?

Saludos.
  #6 (permalink)  
Antiguo 06/07/2009, 09:24
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Calendario con tablas.

¿Y como tu quieres que quede?
  #7 (permalink)  
Antiguo 06/07/2009, 10:35
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Calendario con tablas.

Hmm por ejemplo, no sé si hayas probado el código que está en el primer post, tal vez así te des una idea.

Saludos.
  #8 (permalink)  
Antiguo 06/07/2009, 10:42
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Calendario con tablas.

Es lo mismo que te indique pero en vez de salir numeros colocale los nombres y en vez de que salga hacia abajo con <br /> colocalos entre <td>....</td>
  #9 (permalink)  
Antiguo 06/07/2009, 10:48
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Calendario con tablas.

¿Y para el año qué podría hacer?

Saludos
  #10 (permalink)  
Antiguo 06/07/2009, 10:52
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Calendario con tablas.

Lo mismo le añades el año en cada condicion

Código PHP:
<?php
$meses 
= array("",1,2,3,4,5,6,7,8,9,10,11,12);
$fecha date("m");
$n=(int)$fecha;
$y=date("Y");
for(
$i=0$i<count($meses); $i++){
  if(
$n<count($meses)){
    echo 
$meses[$n++]. " " $y "<br />";
  }else{
    
$n=1;
    
$y++;
  }
}
?>
  #11 (permalink)  
Antiguo 06/07/2009, 11:13
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Calendario con tablas.

No me queda del todo claro el código, algunos comandos no los conozco, como el de 'date'.

Primero tendría que hacer un explode para separar día, mes y año, ¿no?
Después lo de '$meses', ¿cómo estaría eso? ¿no sería algo así?
Código PHP:
<?php

  $meses 
= array(
        
0=>"ENE",
        
1=>"FEB",
        
2=>"MAR");
          
etc...
?>
¿Sería mucha molestia que lo detallaras un poco? Te agradezco tu ayuda.

Saludos.
  #12 (permalink)  
Antiguo 06/07/2009, 11:17
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Calendario con tablas.

$meses = array("","ENE","FEB","MAR","ABR","MAY","JUN","JUL" ,"AGO","SEP","OCT","NOV","DEC");

Nota: es bien importante el espacio al inicio del array
  #13 (permalink)  
Antiguo 06/07/2009, 11:26
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Calendario con tablas.

¿Para qué sería el espacio?, ¿estaría así?

Código PHP:
$meses[1]= "ENE"
Saludos.
  #14 (permalink)  
Antiguo 06/07/2009, 11:28
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Calendario con tablas.

Haz la prueba para que veas lo que pasa si quitas el espacio.
  #15 (permalink)  
Antiguo 06/07/2009, 11:38
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Calendario con tablas.

este es muy bueno... puedes ponerle parametros php http://dansnetwork.com/mootools/events-calendar/demo/
__________________
Quitenme la vida pero no la bebida.
  #16 (permalink)  
Antiguo 06/07/2009, 12:03
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Calendario con tablas.

Cita:
Iniciado por cesarpunk Ver Mensaje
este es muy bueno... puedes ponerle parametros php http://dansnetwork.com/mootools/events-calendar/demo/
Gracias, se ve muy bueno, pero ése se maneja por días, yo busco que se maneje por meses y que tenga cajas de texto dentro para ingresar valores.

Saludos y gracias por su ayuda.

EDIT: Estoy adaptando el código que me dio abimaelrc, pero mi duda radica en ¿en qué momento o cómo acomodaría las variables de '$fechainicio' y '$fechatermino'?

Última edición por Gaug; 06/07/2009 a las 12:25
  #17 (permalink)  
Antiguo 06/07/2009, 13:17
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Calendario con tablas.

Lo unico que te hace falta es hacer un explode a la $fechainicio por ejemplo

Código PHP:
//Vamos a suponer que $fechainicio esta declarado asi  
$fechainicio "15-02-09"
$fechaInicioExplode explode("-",$fechainicio); 
$meses = array("","ENE","FEB","MAR","ABR","MAY","JUN","JUL" ,"AGO","SEP","OCT","NOV","DEC");
$fecha $fechaInicioExplode[1]; 
$n=(int)$fecha
$y=date("Y"); 
for(
$i=0$i<count($meses); $i++){ 
  if(
$n<count($meses)){ 
    echo 
$meses[$n++]. " " $y "<br />"
  }else{ 
    
$n=1
    
$y++; 
  } 

  #18 (permalink)  
Antiguo 06/07/2009, 15:38
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Calendario con tablas.

Muchas gracias por tu ayuda abimaelrc, pero también tengo que tomar en cuenta la fecha de término, ahí radica mi duda sobre como relacionar ambas variables en ése código.

Otra cosilla, me marca error en ésta línea al ejecutarlo:

Código PHP:
    echo "<td width="77" class="bodyText">"$meses[$n++] . " " $y "</td>"
Dice "Parse error: parse error, expecting `','' or `';''..."

Por más que busco no veo donde le falte algo.

Saludos.
  #19 (permalink)  
Antiguo 06/07/2009, 16:01
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Calendario con tablas.

Estas usando mal las comillas.

Código PHP:
echo "<td width='77' class='bodyText'>"$meses[$n++] . " " $y "</td>"
  #20 (permalink)  
Antiguo 06/07/2009, 16:24
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Calendario con tablas.

Ah es verdad, gracias.

Si quiero manejar los meses con letras, osea así:
Código PHP:
$fechainicio "15-Feb-09"
¿cómo sería? y como te decía, tengo duda sobre como relacionar la variable '$fechatermino' ahí también.

Gracias por tu ayuda.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:00.