Comunidad de diseño web y desarrollo en internet online

Formato de fecha en calendario

Citar            
MensajeEscrito el 30 Jul 2009 07:48 am
hola amigos, tengo un calendario pero no he podido lograr que me muestre las variables en la url de esta manera

http://todos2.php?dia=04&mes=07&ano=2009

ya que actualmente me los muestra asi, con sin un cero adelante, cuando son dias y meses de un solo digito:

http://todos2.php?dia=4&mes=7&ano=2009

el codigo del calendario es el siguiente:


Código PHP :

<html>
<head>
<title>Calendario</title>
<?php
$anoInicial = '1900';
$anoFinal = '2100';
$funcionTratarFecha = 'document.location = "?dia="+dia+"&mes="+mes+"&ano="+ano;';
?>
<script>                                           
function tratarFecha(dia,mes,ano){
  <?=$funcionTratarFecha?>
}
</script>
<style>
.m1 {
   font-family:MS Sans Serif;
   font-size:8pt
}
a {
   text-decoration:none;
   color:#000000;
}
</style>
</head>
<body>
<form><table border="0" cellpadding="5" cellspacing="0" bgcolor="#D4D0C8">
<tr>
<td width="100%">

<?php
$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 = '?dia=<?=$dia?>;">
<?php
$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 = '?dia=<?=$dia?>&mes=<?=$mes?>&ano=' + document.forms[0].ano.value;">

<?php
for ($i = $anoInicial; $i <= $anoFinal; $i++){
  echo '      <option ';
  if($ano == $i)echo 'selected ';
  echo 'value="'.$i.'">'.$i."\n";
}
?>
</select><br>
<font size="1">&nbsp;</font><table border="0" cellpadding="2" cellspacing="0" width="100%" class="m1" bgcolor="#FFFFFF" height="100%">

<?php
$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-1 == $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('.(++$numMes).','.$mes.','.$ano.')">';
if($dia == $numMes)echo '<font color="#FFFFFF">';
echo ($numMes).'</a>';
}
echo "</td>\n";
}
echo "      </tr>\n";
}
?>
</table>
</td>
</tr>
</table></form>
</body>
</html>

Por mikaeli

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Jul 2009 01:39 pm
Usa la función str_pad() para rellenar los ceros a la izquierda necesarios:

Código PHP :

$numero=5;
$cuantos_caracteres_debe_tener=2;
$cadena_para_rellenar='0';
//STR_PAD_LEFT es para decirle que rellene a la izquierda si es que hace falta
echo str_pad($numero,$cuantos_caracteres_debe_tener,$cadena_para_rellenar,STR_PAD_LEFT);

Saludos.

Por -george-

58 de clabLevel



 

Tartarus

firefox
Citar            
MensajeEscrito el 30 Jul 2009 02:12 pm
Gracias -george- ! :D

ya lo trato de implementar, en el archivo que recibe las variables, mil gracias ! (y)

Por mikaeli

18 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.