Foros del Web » Programando para Internet » PHP »

Como despliego los 12 meses en pantalla?

Estas en el tema de Como despliego los 12 meses en pantalla? en el foro de PHP en Foros del Web. Hola a todos, no soy buena en esto de php, y tengo que hacer que se desplieguen los 12 meses del a~o en pantalla y ...
  #1 (permalink)  
Antiguo 06/03/2006, 12:38
 
Fecha de Ingreso: abril-2005
Mensajes: 2
Antigüedad: 12 años, 8 meses
Puntos: 0
Como despliego los 12 meses en pantalla?

Hola a todos, no soy buena en esto de php, y tengo que hacer que se desplieguen los 12 meses del a~o en pantalla y no se como, ya me baje este codigo que despliega de mes en mes y tiene flechas de navegacion para moverse a traves de los meses y los a~os, pero, como le hago para que me los imprima todos de una vez y mejor moverme de a~o en a~o??

Le agradecere mucho a quien me preste un poco de ayuda, no pido que lo hagan por mi, solo que si me pueden explicar poquito.
Gracias.
<?
function calcula_numero_dia_semana($dia,$mes,$ano)
{
$numerodiasemana = date('w', mktime(0,0,0,$mes,$dia,$ano));
if($numerodiasemana == 0)
$numerodiasemana = 6;
else
$numerodiasemana--;
return $numerodiasemana;
}

//funcion que devuelve el último día de un mes y año dados
function ultimoDia($mes,$ano)
{
$ultimo_dia=28;
while (checkdate($mes,$ultimo_dia + 1,$ano))
{
$ultimo_dia++;
}
return $ultimo_dia;
}

function dame_nombre_mes($mes)
{
switch ($mes)
{
case 1:
$nombre_mes="Enero";
break;
case 2:
$nombre_mes="Febrero";
break;
case 3:
$nombre_mes="Marzo";
break;
case 4:
$nombre_mes="Abril";
break;
case 5:
$nombre_mes="Mayo";
break;
case 6:
$nombre_mes="Junio";
break;
case 7:
$nombre_mes="Julio";
break;
case 8:
$nombre_mes="Agosto";
break;
case 9:
$nombre_mes="Septiembre";
break;
case 10:
$nombre_mes="Octubre";
break;
case 11:
$nombre_mes="Noviembre";
break;
case 12:
$nombre_mes="Diciembre";
break;
}
return $nombre_mes;
}

function mostrar_calendario($dia,$mes,$ano)
{
$mes_hoy=date("m");
$ano_hoy=date("Y");
if (($mes_hoy <> $mes) || ($ano_hoy <> $ano))
{
$hoy=0;
}
else
{
$hoy=date("d");
}
//tomo el nombre del mes que hay que imprimir
$nombre_mes = dame_nombre_mes($mes);

//construyo la cabecera de la tabla
echo "<table width=200 cellspacing=3 cellpadding=2 border=0><tr><td colspan=7 align=center class=tit>";
echo "<table width=100% cellspacing=2 cellpadding=2 border=0><tr><td style=font-size:10pt;font-weight:bold;color:white>";
//calculo el mes y ano del mes anterior
$mes_anterior = $mes - 1;
$ano_anterior = $ano;
if ($mes_anterior==0)
{
$ano_anterior--;
$mes_anterior=12;
}
echo "<a style=color:white;text-decoration:none href=index.php?dia=1&nuevo_mes=$mes_anterior&nuevo _ano=$ano_anterior>&lt;&lt;</a></td>";
echo "<td align=center class=tit>$nombre_mes $ano</td>";
echo "<td align=right style=font-size:10pt;font-weight:bold;color:white>";

//calculo el mes y ano del mes siguiente
$mes_siguiente = $mes + 1;
$ano_siguiente = $ano;
if ($mes_siguiente==13)
{
$ano_siguiente++;
$mes_siguiente=1;
}
echo "<a style=color:white;text-decoration:none href=index.php?dia=1&nuevo_mes=$mes_siguiente&nuev o_ano=$ano_siguiente>&gt;&gt;</a></td></tr></table></td></tr>";
echo '<tr>
<td width=14% align=center class=altn>L</td>
<td width=14% align=center class=altn>M</td>
<td width=14% align=center class=altn>M</td>
<td width=14% align=center class=altn>J</td>
<td width=14% align=center class=altn>V</td>
<td width=14% align=center class=altn>S</td>
<td width=14% align=center class=altn>D</td>
</tr>';

//Variable para llevar la cuenta del dia actual
$dia_actual = 1;

//calculo el numero del dia de la semana del primer dia
$numero_dia = calcula_numero_dia_semana(1,$mes,$ano);
//echo "Numero del dia de demana del primer: $numero_dia <br>";

//calculo el último dia del mes
$ultimo_dia = ultimoDia($mes,$ano);

//escribo la primera fila de la semana
echo "<tr>";
for ($i=0;$i<7;$i++)
{
if ($i < $numero_dia)
{
//si el dia de la semana i es menor que el numero del primer dia de la semana no pongo nada en la celda
echo "<td></td>";
}
else
{
if (($i == 5) || ($i == 6))
{
echo "<td class=da><a href=index.php?dia=$dia_actual&nuevo_mes=$mes&nuev o_ano=$ano>$dia_actual</a></td>";
}
else
{
echo "<td class=fs><a href=index.php?dia=$dia_actual&nuevo_mes=$mes&nuev o_ano=$ano>$dia_actual</a></td>";
}
}
else
{
if ($dia_actual == $hoy)
{
echo "<td class=da><a href=index.php?dia=$dia_actual&nuevo_mes=$mes&nuev o_ano=$ano>$dia_actual</a></td>";
}
else
{
echo "<td align=center><a href=index.php?dia=$dia_actual&nuevo_mes=$mes&nuev o_ano=$ano>$dia_actual</a></td>";
}
}
$dia_actual++;
}
}
echo "</tr>";

//recorro todos los demás días hasta el final del mes
$numero_dia = 0;
while ($dia_actual <= $ultimo_dia){
//si estamos a principio de la semana escribo el <TR>
if ($numero_dia == 0)
echo "<tr>";
//si es el uñtimo de la semana, me pongo al principio de la semana y escribo el </tr>

if (($numero_dia == 5) || ($numero_dia == 6))
{
if ($dia_actual == $hoy)
{
echo "<td class=da><a href=index.php?dia=$dia_actual&nuevo_mes=$mes&nuev o_ano=$ano>$dia_actual</a></td>";
}
else
{
echo "<td class=fs ><a href=index.php?dia=$dia_actual&nuevo_mes=$mes&nuev o_ano=$ano>$dia_actual</a></td>";
}
}
else
{
if ($dia_actual == $hoy)
{
echo "<td class=da><a href=index.php?dia=$dia_actual&nuevo_mes=$mes&nuev o_ano=$ano>$dia_actual</a></td>";
}
else
{
echo "<td align=center><a href=index.php?dia=$dia_actual&nuevo_mes=$mes&nuev o_ano=$ano>$dia_actual</a></td>";
}
}

$dia_actual++;
$numero_dia++;
if ($numero_dia == 7)
{
$numero_dia = 0;
echo "</tr>";
}

}//fin del ciclo while()

//compruebo que celdas me faltan por escribir vacias de la última semana del mes
for ($i=$numero_dia;$i<7;$i++)
{
echo "<td></td>";
}

echo "</tr>";
echo "</table>";
}
?>
  #2 (permalink)  
Antiguo 06/03/2006, 13:28
 
Fecha de Ingreso: enero-2006
Mensajes: 54
Antigüedad: 11 años, 11 meses
Puntos: 0
Hola, pues si quieres presentarlos por nombre tendrias que hacer lo siguiente:

Creas un array con los 12 menes:
<?
$meses = array("1" => "Enero", "2" => "Febrero", "3" => "Marzo", "4" => "Abril", "5" => "Mayo", "6" => "Junio", "7" => "Julio", "8" => "Agosto", "9" => "Septiembre", "10" => "Octubre", "11" => "Noviembre", "12" => "Diciembre");
?>

Y luego, donde los quieres mostrar, en este caso se mostraran en un Select, haces lo siguiente:

<select name="mes_i" class="caja">
<?
$mes_actual=date("m");
for($i=1;$i<13;$i++)
{
?>
<option value="<?=$i?>" <? if($i==$mes_actual) { ?> selected <? } ?>><?=$meses[$i]?></option>
<?
}
?>
</select>

Lo de $mes_actual es solo para que por defecto aparezca seleccionado el mes en curso.

Espero te sirva de algo. Bye.
  #3 (permalink)  
Antiguo 06/03/2006, 16:27
Avatar de vevni  
Fecha de Ingreso: julio-2005
Ubicación: cancun mexico
Mensajes: 598
Antigüedad: 12 años, 4 meses
Puntos: 3
oh dios.... usen la enmarcacion de eiquetas php, asi su codigo sera legible y facil de entender..........
__________________
Código PHP:
echo"hola mundo ver 1221332143.02";
echo
"cuantos usuarios habran impreso hola mundo en el mundo.!???"
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 04:57.