Foros del Web » Programando para Internet » PHP »

Calendario PHP - ayuda

Estas en el tema de Calendario PHP - ayuda en el foro de PHP en Foros del Web. Hola, replanteo este tema ya que necesito resolverlo y no he obtenido respuesta. El anterior quedó entreveradísimo. Tengo este calendario: Código PHP: <? $anoInicial  =  ...
  #1 (permalink)  
Antiguo 22/10/2008, 18:55
 
Fecha de Ingreso: septiembre-2006
Mensajes: 141
Antigüedad: 17 años, 6 meses
Puntos: 1
Calendario PHP - ayuda

Hola, replanteo este tema ya que necesito resolverlo y no he obtenido respuesta.
El anterior quedó entreveradísimo.

Tengo este calendario:

Código PHP:
<?
$anoInicial 
'2008';
$anoFinal '2009';
$funcionTratarFecha 'document.location = "?date="+ano+"-"+mes+"-"+dia';
?><script>                                    
function tratarFecha(ano,mes,dia){
  <?=$funcionTratarFecha?>
}
</script>

<form>
  <tr><td><div id="siteBarra2">SELECCIONE LA FECHA QUE QUIERA VER</div></td></tr>
  <tr align="center">
    <td width="265">
<?
$fecha 
getdate(time());
if(isset(
$_GET["dia"]))$dia $_GET["dia"];
else 
$dia $fecha['mday'];
if(isset(
$_GET["mes"]))$mes $_GET["mes"];
else 
$mes $fecha['mon'];
if(isset(
$_GET["ano"]))$ano $_GET["ano"];
else 
$ano $fecha['year'];
$fecha mktime(0,0,0,$mes,$dia,$ano);
$fechaInicioMes mktime(0,0,0,$mes,1,$ano);
$fechaInicioMes date("w",$fechaInicioMes);
?>
    <select size="1" name="mes" class="m1" onchange="document.location = '/archivo.php?date=<?=$ano?>-' + document.forms[0].mes.value + '-<?=$dia?>'">
<?
$meses 
= Array ('enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre');
for(
$i 1$i <= 12$i++){
  echo 
'      <option ';
  if(
$mes == $i)echo 'selected ';
  echo 
'value="'.$i.'">'.$meses[$i-1]."\n";
}
?>
    </select>&nbsp;&nbsp;&nbsp;<select size="1" name="ano" class="m1" onchange="document.location = '/archivo.php?date=' + document.forms[0].ano.value'-<?=$mes?>-<?=$dia?>'">
<?
for ($i $anoInicial$i <= $anoFinal$i++){
  echo 
'      <option ';
  if(
$ano == $i)echo 'selected ';
  echo 
'value="'.$i.'">'.$i."\n";
}
?>
    </select><br>
    <font size="1"></font><table border="0" align="center" cellpadding="2" cellspacing="0" width="280" class="m1" bgcolor="#FFFFFF" height="100%">
<?
$diasSem 
= Array ('L','M','M','J','V','S','D');
$ultimoDia date('t',$fecha);
$numMes 0;
for (
$fila 0$fila 7$fila++){
  echo 
"      <tr>\n";
  for (
$coln 0$coln 7$coln++){
    
$posicion = Array (1,2,3,4,5,6,0);
    echo 
'        <td width="14%" height="19"';
    if(
$fila == 0)echo ' bgcolor="#808080"';
    if(
$dia-== $numMes)echo ' bgcolor="#0A246A"';
    echo 
" align=\"center\">\n";
    echo 
'        ';
    if(
$fila == 0)echo '<font color="#D4D0C8">'.$diasSem[$coln];
    elseif((
$numMes && $numMes $ultimoDia) || (!$numMes && $posicion[$coln] == $fechaInicioMes)){
      echo 
'<a href="#" onclick="tratarFecha('.$ano.','.$mes.','.(++$numMes).')">';
      if(
$dia == $numMes)echo '<font color="#FFFFFF">';
      echo (
$numMes).'</a>';
    }
    echo 
"</td>\n";
  }
  echo 
"      </tr>\n";
}
?>
Cuando se cambia de mes vuelve siempre al mes actual, yo quiero que cuando cambien de mes siga en que se eligió.

Alguien me puede dar una mano u orientación?


$numMes lo define con 0 para elegir la fecha actual pero después nunca cambia, podría ser por ahí que ande mal?

Gracias de antemano.
  #2 (permalink)  
Antiguo 23/10/2008, 03:48
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 7 meses
Puntos: 22
Respuesta: Calendario PHP - ayuda

Pasa que estás intentando tomar desde GET dia mes y ano, mientras que al cambiar de mes le pasás date.
Algo así me funcionó:

Código PHP:
<? 
$fecha 
getdate(time());
$date=$_GET["date"];
if(
$date) {
    
$date strtotime($date);
    
$dia date("j",$date);
    
$mes date("n",$date);
    
$ano date("Y",$date);
}
if(!
$dia$dia $fecha['mday']; 
if(!
$mes$mes $fecha['mon']; 
if(!
$ano$ano $fecha['year']; 
$fecha mktime(0,0,0,$mes,$dia,$ano); 
$fechaInicioMes mktime(0,0,0,$mes,1,$ano); 
$fechaInicioMes date("w",$fechaInicioMes); 
?>
Saludos.
  #3 (permalink)  
Antiguo 28/10/2008, 01:35
 
Fecha de Ingreso: septiembre-2006
Mensajes: 141
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Calendario PHP - ayuda

Muchas gracias por tu respuesta, un amigo me ayudó a corregirlo, también funcionó con esto:

Código PHP:
$fecha getdate(time());
if(isset(
$_GET['date']))
{
  
$la_fecha explode('-'$_GET['date']);
  
$ano $la_fecha[0];
  
$mes $la_fecha[1];
  
$dia $la_fecha[2];
}
else
{
  
$dia $fecha['mday'];
  
$mes $fecha['mon'];
  
$ano $fecha['year'];

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 18:26.