Foros del Web » Programando para Internet » PHP »

calendario.php

Estas en el tema de calendario.php en el foro de PHP en Foros del Web. Hola, pues no logro hacer que me ponga la fecha actual al momentor de teclaear la direccion del calendario y tampoco logro que me pnga ...
  #1 (permalink)  
Antiguo 14/04/2004, 09:14
 
Fecha de Ingreso: abril-2004
Mensajes: 6
Antigüedad: 20 años
Puntos: 0
calendario.php

Hola, pues no logro hacer que me ponga la fecha actual al momentor de teclaear la direccion del calendario y tampoco logro que me pnga en negritas el dia actual... ya me canse, echenme la mano por fa...
Código PHP:
<?php

$mes 
$HTTP_GET_VARS["m"];
$anho $HTTP_GET_VARS["a"];

if(
$mes<1$mes+=12;
else if(
$mes>12)$mes-=12;

$fecha getdate();
$mes_actual $fecha["mon"];
$anho_actual $fecha["year"];

if(
$mes_actual == $mes && $anho_actual == $anho)$dia_actual =
        
$fecha["mday"];
else 
$dia_actual 0;

$tmstp_dia_uno mktime(0,0,0$mes1$anho);
$fecha getdate($tmstp_dia_uno);
$comenzar $fecha["wday"]+1;

$vec_dias = array(31,28,31,30,31,30,31,31,30,31,30,31);
$dias_mes $vec_dias[$mes-1];
if(
$mes == && $anho%==0)
   
$dias_mes 29;
   
$celda 1;
$dia_mes 1;

echo 
"<table border=\"1\" cellspacing=\"0\" align=\"center\">\n";
echo 
"<tr align=\"center\"><td colspan=\"7\">\n";
echo 
"<a href=\"calendario.php?m=$mes&amp;a=".($anho-1)."\">◀</a> 200";
if(empty(
$anho))
echo 
"0";
echo 
$anho;
echo 
"<a href=\"calendario.php?m=$mes&amp;a=".($anho+1)."\">▶</a><br>";

$anho_prox $anho;
$anho_ant $anho;
    if(
$mes == 12)$anho_prox $anho+1;
    else if(
$mes == 1)$anho_ant $anho-1;
    
echo 
"<a href=\"calendario.php?m=".($mes-1)."&amp;a=$anho_ant\">◀</a>";
echo 
"<b>" .nombre_mes($mes). "</b>";
echo 
"<a href=\"calendario.php?m=".($mes+1)."&amp;a=$anho_prox\">▶</a>";
echo 
"</td></tr>\n";
echo 
"<tr align=\"center\"><td>D<td>L<td>M<td>M<td>J<td>V<td>S</tr>\n";

for(
$semana 1$semana<=6&&$dia_mes<=$dias_mes$semana++)
{
 echo 
"<tr align=\"center\">\n";
 for(
$dia_semana 1;$dia_semana<=7;$dia_semana++)
 {
  echo 
"<td>";
  if((
$celda == $comenzar||$dia_mes>1) && $dia_mes<=$dias_mes)
  {
   if(
$dia_mes == $dia_actual) echo "<b>";
   echo 
"<a href=\"eventos.php?f=".mktime(0,0,0,$mes,$dia_mes,$anho)."\"><font face=\"verdana\" size=\"-2\">";
   echo 
$dia_mes;
   echo 
"</a></font>";
   if(
$dia_mes == $dia_actual) echo "</b>";
   
$dia_mes++;
   }
   else echo 
"&nbsp;";
   echo 
"</td>\n";
   
$celda++;
  }
  echo 
"</tr>\n";
}
echo 
"</table>";

function 
nombre_mes($m)

{
 
$mes =  array("Enero""Febrero""Marzo""Abril""Mayo""Junio""Julio""Agosto""Septiembre""Octubre""Noviembre""Diciembre");
 
$m--;
 return 
$mes[$m];
}




?>
  #2 (permalink)  
Antiguo 14/04/2004, 09:50
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
Código PHP:
<style type="text/css">
<!--
.diassemana {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 7pt;
    text-decoration: none;
}
-->
</style>
<body bgcolor="#FFFFFF">
<?
# o--------------------------------------------------------------------------o
#  Funcion que despliega la fecha en formato de texto
#  Ejemplo Lunes, Octubre 22 de 2001
#  Creada por Exequiel Contreras Luna
#  Contáctame en : [email][email protected][/email]
#  Libre distribución, siempre que no se borre la nota de Creditos al autor.
# o--------------------------------------------------------------------------o

 
$dayarray=array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sábado","Domingo");
 
$montharray=array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
 
$diasemanadate("w");
 
$diamesdate("d");
 
$mesdate("m");
 
$mesantdate("m")-1;
 
$anodate("Y");
 
$diasdelmes=date("t");
 
$diamesant=date($mesant);

 
// en ésta variable se almacena la fecha en modo de texto, se puede mostrar usando un echo o print o lo ke kieran.
 
$lafecha=$dayarray[$diasemana].", ".$montharray[$mes-1]." ".$diames." de ".$ano;
 
// se puede alterar el orden si lo deseas
 
$festivos=array(18,19); // escoge los días festivos de acuerdo a tu país, tb puedes incluir Domingos y sábados
 
$totalfestivos=2// Cantidad de días festivos

 // calcula el inicio del mes actual
 
$diasatras=$diames;

 
$arraymesfull=array(42);
 
$arraymesfull[$diames]=$dayarray[$diasemana];

 
$i=$diames;
 
$decdiasemana=$diasemana;
 while (
$i>=0)
  {
    
$empiezaen=$decdiasemana+1;
    
$i=$i-1;
    if (
$decdiasemana==0)
     {
      
$decdiasemana=6;
     }
    else
     {
      
$decdiasemana=$decdiasemana-1;
     }

  }

 for (
$i=0;$i<=42;$i++)
  {
    
$arraymesfull[$i]=" ";
  }

$i=0;
$j=1;
 for (
$i=$empiezaen;$j<=$diasdelmes;$i++)
  {
    
$arraymesfull[$i]=$j;
    
$j++;
  }
?>
<span class="diassemana"><i><?=$lafecha?></i></span>
<table border="1" cellspacing="0" cellpadding="0" bordercolor="#000000">
  <tr>
    <td>
      <table border="0" cellspacing="1" cellpadding="0">
        <tr class="diassemana">
          <td colspan="7"> <div align="center"><font size="1"><b><font face="Trebuchet MS, Tahoma">
              <? echo $montharray[$mes-1]; ?> </font></b></font></div></td>
        </tr>
        <tr class="diassemana">
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">D</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">L</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">M</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">M</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">J</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">V</font></div></td>
          <td width="20" bgcolor="#000000"> <div align="center"><font color="#FFFFCC">S</font></div></td>
        </tr>
        <tr>
          <?
$j
=0;
for (
$i=0;$i<=42;$i++)
{
$verfest=0;
$bcolor="#E8E8E8"$fcolor="#000000";
if (
$diames==$arraymesfull[$i]) { $bcolor="#000000"$fcolor="#FFFFFF"; }
for (
$verfest==0;$verfest<$totalfestivos;$verfest++) {
if (
$arraymesfull[$i]==$festivos[$verfest]) { $bcolor="#E8E8E8"$fcolor="#CC0000"; }
}
?>
          <td width="20" align="center" bgcolor=<? echo $bcolor ?> class="diassemana" ><font  color=<? echo $fcolor?>>
            <? echo $arraymesfull[$i]; ?> </font></td>
          <?
if ($j==6) {$j=0?>
        </tr>
        <tr>
          <? }
 else {
$j=$j+1;}
?>
      </table>

    </td>
  </tr>
</table>
toma este....
__________________
3w.valenciadjs.com
3w.laislatv.com
  #3 (permalink)  
Antiguo 14/04/2004, 12:10
Avatar de execon  
Fecha de Ingreso: enero-2002
Ubicación: Temuco
Mensajes: 179
Antigüedad: 22 años, 3 meses
Puntos: 0
:D:D:D:D:D:D

Ese es mi calendario !!!!!!!

me alegro de haber entregado un código de utilidad para todos.
me emociona.
__________________
----------------------------------
APP Developer
[email protected]
----------------------------------
  #4 (permalink)  
Antiguo 14/04/2004, 12:26
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
jajajaj, esta muy bien tio!, un saludo...
__________________
3w.valenciadjs.com
3w.laislatv.com
  #5 (permalink)  
Antiguo 14/04/2004, 23:03
 
Fecha de Ingreso: abril-2004
Mensajes: 6
Antigüedad: 20 años
Puntos: 0
nuevo, no me gusto el camino facil que me sugieres, pero gracias de todas formas, seguire rompiendome la cabeza, saludos!
  #6 (permalink)  
Antiguo 15/04/2004, 09:40
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 20 años, 11 meses
Puntos: 2
vale!.... te pongo en negrita el dia Actual... pero explica mejor lo que mas necesitas... pq no te pillo... lo que dices... sorry

Código PHP:
<?php
$mes 
$HTTP_GET_VARS["m"];
$anho $HTTP_GET_VARS["a"];

if(
$mes<1$mes+=12;
else if(
$mes>12)$mes-=12;

$fecha getdate();
$mes_actual $fecha["mon"];
$anho_actual $fecha["year"];

if(
$mes_actual == $mes && $anho_actual == $anho)$dia_actual =
        
$fecha["mday"];
else 
$dia_actual 0;

$tmstp_dia_uno mktime(0,0,0$mes1$anho);
$fecha getdate($tmstp_dia_uno);
$comenzar $fecha["wday"]+1;

$vec_dias = array(31,28,31,30,31,30,31,31,30,31,30,31);
$dias_mes $vec_dias[$mes-1];
if(
$mes == && $anho%==0)
   
$dias_mes 29;

$celda 1;
$dia_mes 1;

echo 
"<table border=\"1\" cellspacing=\"0\" align=\"center\">\n";
echo 
"<tr align=\"center\"><td colspan=\"7\">\n";
echo 
"<a href=\"calendario.php?m=$mes&a=".($anho-1)."\">◀</a> 200";
if(empty(
$anho))
echo 
"0";
echo 
$anho;
echo 
"<a href=\"calendario.php?m=$mes&a=".($anho+1)."\">▶</a><br>";

$anho_prox $anho;
$anho_ant $anho;
    if(
$mes == 12)$anho_prox $anho+1;
    else if(
$mes == 1)$anho_ant $anho-1;

echo 
"<a href=\"calendario.php?m=".($mes-1)."&a=$anho_ant\">◀</a>";
echo 
"<b>" .nombre_mes($mes). "</b>";
echo 
"<a href=\"calendario.php?m=".($mes+1)."&a=$anho_prox\">▶</a>";
echo 
"</td></tr>\n";
echo 
"<tr align=\"center\"><td>D<td>L<td>M<td>M<td>J<td>V<td>S</tr>\n";

for(
$semana 1$semana<=6&&$dia_mes<=$dias_mes$semana++)
{
 echo 
"<tr align=\"center\">\n";
 for(
$dia_semana 1;$dia_semana<=7;$dia_semana++)
 {
  echo 
"<td>";
  if((
$celda == $comenzar||$dia_mes>1) && $dia_mes<=$dias_mes)
  {
   if(
$dia_mes == $dia_actual) echo "<b>";
   echo 
"<a href=\"eventos.php?f=".mktime(0,0,0,$mes,$dia_mes,$anho)."\"><font face=\"verdana\" size=\"-2\">";

//en negrita
    
if(date('d') == $dia_mes){
           echo 
"<b>".$dia_mes."</b>";
    }else{
        echo 
$dia_mes;
    }
//en negrita
   
   
echo "</a></font>";
   if(
$dia_mes == $dia_actual) echo "</b>";
   
$dia_mes++;
   }
   else echo 
"&nbsp;";
   echo 
"</td>\n";
   
$celda++;
  }
  echo 
"</tr>\n";
}
echo 
"</table>";

function 
nombre_mes($m)

{
 
$mes =  array("Enero""Febrero""Marzo""Abril""Mayo""Junio""Julio""Agosto""Septiembre""Octubre""Noviembre""Diciembre");
 
$m--;
 return 
$mes[$m];
}

?>
__________________
3w.valenciadjs.com
3w.laislatv.com
  #7 (permalink)  
Antiguo 15/04/2004, 23:11
 
Fecha de Ingreso: abril-2004
Mensajes: 6
Antigüedad: 20 años
Puntos: 0
Lo que pasa es lo siguiente, al guardar el script como calendario.php y llendo directo a localhost/calendario.php me pone el año 2000, en lugar de poner el año actual y solo dando clicks hasta el año actual se puede, pero eso no es el chiste de un calendario, pues imagina que tienes uno en casa, obviamente simpre lo tienes en el dia y año actual, espero haberme explicado bien... por cierto el calendario que me pusiste esta bueno, de hecho lo adapate a un bloque para PHP Nuke http://php-mania.com.ar

Gracias Por pintarme los dias con negritas!
  #8 (permalink)  
Antiguo 15/04/2004, 23:19
 
Fecha de Ingreso: marzo-2004
Ubicación: $_SERVER['DOCUMENT_ROOT'] :-)
Mensajes: 100
Antigüedad: 20 años
Puntos: 0
La fecha del 2000 debe ser por la fecha que tienes en tu computadora...
__________________
-- girls.code.better --
  #9 (permalink)  
Antiguo 15/04/2004, 23:21
 
Fecha de Ingreso: abril-2004
Mensajes: 6
Antigüedad: 20 años
Puntos: 0
Buen intento codergirl, jeje... nada que ver!
  #10 (permalink)  
Antiguo 15/04/2004, 23:27
 
Fecha de Ingreso: marzo-2004
Ubicación: $_SERVER['DOCUMENT_ROOT'] :-)
Mensajes: 100
Antigüedad: 20 años
Puntos: 0
Hola kaox. Je je je. Mucho que ver.

Si tu máquina tuviera la fecha del 2000 (me refiero a tu localhost), la función getdate() te devolvería esa fecha.

Pero tu bien podrias hacer un par de intentos y ver que cuando entras a la aplicación y NO hay ninguna variable GET, el valir de $anho se convierte en "0", cosa que PHP interpreta como el año 2000.

No sera eso?

Si no es, te puedes volver a burlar.
__________________
-- girls.code.better --
  #11 (permalink)  
Antiguo 15/04/2004, 23:32
 
Fecha de Ingreso: marzo-2004
Ubicación: $_SERVER['DOCUMENT_ROOT'] :-)
Mensajes: 100
Antigüedad: 20 años
Puntos: 0
Por cierto, si fuera eso, podrias solucionarlo con algo así:

Código PHP:
$anho = ($HTTP_GET_VARS["a"]) ? $HTTP_GET_VARS["a"] : date("Y"); 
__________________
-- girls.code.better --
  #12 (permalink)  
Antiguo 15/04/2004, 23:40
 
Fecha de Ingreso: abril-2004
Mensajes: 6
Antigüedad: 20 años
Puntos: 0
Espera no mal interpretes... no me burle, no acostumbro hacer eso, tomo muy en cuenta tus sugerencias, como la de todos los que me ayudan, pero lo dije por que mi fecha esta bien, probare lo que dices, 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 01:42.