Esta funcion a una fecha x, debo en una caja de texto sumar o restar x numeros y me debe desplegar la fecha, por ejemplo hoy es 21/04/05 y en una textbox ingreso 5 y presiono un boton, este me debe calcular y desplegar en pantalla 26/04/05... asi lo mismo si tengo la fecha 10/04/2005 y coloco en el texbox -9 me deberia mostrar 01/04/2005 ....
anteriormente calcule la edad de una persona....
por si puede ayudar aqui esta el codigo:
Código PHP:
<?php
include "karpedia.inc.php";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>Fecha Nacimiento</title>
</head>
<body>
<form name="form1" method="post" action="fecha.php">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="12%" class="labeltop">Fecha Naciemiento:</td>
<td width="88%"><?php echo GetSelectFechaHTML($fecha); ?></td>
</tr>
</table>
<?php
$guardar=$_POST['Aceptar'];
if ($guardar==1){
$dia=$_POST['cb_dia'];
$mes=$_POST['cb_mes'];
$anio=$_POST['cb_ano'];
$edad = floor(( (date("Y") - $anio ) * 365 + ( date("m") - $mes ) * 31 + Date("d" ) - $dia )/365) ;
echo "Edad: ".$edad;
}
?>
<p align="center">
<input type="button" name="Button" value="Aceptar" onClick="javascript:document.forms[0].Aceptar.value=1;this.form.submit();" >
<input name="Aceptar" type="hidden" id="Aceptar" value="0">
</p>
</form>
</body>
</html>
Código PHP:
function GetSelectFechaHTML($fecha=''){ //$fecha en formato YYYY-MM-DD HH:MM:SS
$html='';
$meses=array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
if(strlen($fecha)>=10){
$year=substr($fecha,0,4);
$mes=substr($fecha,5,2);
$dia=substr($fecha,8,2);
} else {
$year=date("Y");
$mes=date("m");
$dia=date("d");
}
$seldia='<select name="cb_dia" class="input" id="cb_dia">';
$selmes='<select name="cb_mes" class="input" id="cb_mes">';
$selano='<select name="cb_ano" class="input" id="cb_ano">';
$opdia='';
$opmes='';
$opano='';
for($i=1;$i<=31;$i++){
$dd=substr("0".$i,-2);
if($dd==$dia){
$opdia.='<option value="'.$dd.'" selected="selected">'.$dd.'</option>';
} else {
$opdia.='<option value="'.$dd.'">'.$dd.'</option>';
}
}
for($i=0;$i<12;$i++){
$mm=substr("0".($i+1),-2);
if($mm==$mes){
$opmes.='<option value="'.$mm.'" selected="selected">'.$meses[$i].'</option>';
} else {
$opmes.='<option value="'.$mm.'">'.$meses[$i].'</option>';
}
}
for($i=85;$i>0;$i--){
$yy=date("Y")-$i;
if($yy==$year){
$opano.='<option value="'.$yy.'" selected="selected">'.$yy.'</option>';
} else {
$opano.='<option value="'.$yy.'">'.$yy.'</option>';
}
}
$seldia.=$opdia.'</select>';
$selmes.=$opmes.'</select>';
$selano.=$opano.'</select>';
$html=$seldia.'-'.$selmes.'-'.$selano;
return $html;
}
function FormatoFecha($fecha='', $formato='dd-mm-yyyy'){ //fecha en formato YYYY-MM-DD
if(!strlen($fecha)) $fecha=date("Y-m-d");
$valor='';
$meses=array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
switch($formato){
case "dd-mm-yyyy":
$valor=substr($fecha,8,2).'-'.substr($fecha,5,2).'-'.substr($fecha,0,4);
break;
case "dd/mm/yyyy":
$valor=substr($fecha,8,2).'/'.substr($fecha,5,2).'/'.substr($fecha,0,4);
break;
case "mmm yy":
$valor=substr($meses[((substr($fecha,5,2)*1)-1)],0,3).' '.substr(substr($fecha,0,4),-2);
break;
case "mmm yyyy":
$valor=substr($meses[((substr($fecha,5,2)*1)-1)],0,3).' '.substr($fecha,0,4);
break;
case "mmmm yy":
$valor=$meses[((substr($fecha,5,2)*1)-1)].' '.substr(substr($fecha,0,4),-2);
break;
case "mmmm yyyy":
$valor=$meses[((substr($fecha,5,2)*1)-1)].' '.substr($fecha,0,4);
break;
case "dd de mmmm de yyyy":
$valor=substr($fecha,8,2).' de '.$meses[((substr($fecha,5,2)*1)-1)].' de '.substr($fecha,0,4);
break;
}
return $valor;
}
de ante mano gracias salu2