Ver Mensaje Individual
  #13 (permalink)  
Antiguo 03/06/2007, 13:10
makeitslow
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Edad exacta con php

Hola de nuevo a todos... creo que solucione mi problema o tal vez me estoy cag.....me mas mi existencia.....

Quisiera saber si alguien puede ayudarme en mi nuevo dilema.... y a ver si alguien le sirve para calcular la edad con un simple click.

Tengo un SELECT para los dias:
Código PHP:
<select name="dianaccs" size="1">
<
option value="01">1</option>
<
option value="02">2</option>
.
.
.
</
select
Tengo un SELECT para los meses:
Código PHP:
<select name="mesnaccs" size="1">
<
option value="01">Enero</option>
<
option value="02">Febrero</option>
.
.
.
</
select
Y tengo un TEXT INPUT para el año (Solo recibe 2 digitos y no permite escribir otras letras que no sean numeros):
Código PHP:
<input name="anonaccs" type="text" size="5" maxlength="2"
onKeyPress=
"if (event.keyCode<45||event.keyCode>57)event.returnValue=false;"
Ahora tengo la funcion en Java Script para calcular la edad que anteriormente la coloque en este tema de alguien que lo implemento:
Código HTML:
function calcular_edad()
{ 
//Obtengo los valores escogidos en los SELECTS y el INPUT anterior 
que estan en un formulario FORM1
var ano = document.form1.añonaccs.value; 
var mes = document.form1.mesnaccs.value; 
var dia = document.form1.dianaccs.value; 

//Calculo la fecha de hoy 
hoy=new Date() 

//Como la el año de la fecha esta en 2 digitos la cambio a 4 digitos
ano +=1900 

//Resto los años de las dos fechas 
edad=hoy.getYear()- ano - 1; 

//Si resto los meses y me da menor que 0 entonces no ha cumplido años. 
Si da mayor si ha cumplido.
if (hoy.getMonth() + 1 - mes < 0)
return edad 

if (hoy.getMonth() + 1 - mes > 0)
return edad+1 

//Si resto los dias y me da menor que 0 entonces no ha cumplido años. 
Si da mayor o igual si ha cumplido 
if (hoy.getUTCDate() - dia >= 0)
return edad + 1 

return edad 
}
Hasta aqui ya tengo la edad calcula exactamente, ahora lo paso a un evento de otro INPUT TEXT que seria el de la edad, que se calcula y muestra inmediatamente haciendo click en este INPUT:
Código PHP:
<input name="edadcs" type="text" size="5"
onClick="this.form.edadcs.value=calcular_edad()"
Suena perfecto no??? Pero NO!

Todo corre belleza pero tengo los siguientes problemas:

1. No estoy obteniendo los valores de los SELECTS, el valor del INPUT si se captura en su variable correspondiente.

2. He tratado de simplificar la funcion haciendo solo calculos con el AÑO, pero la resta del AÑO DE HOY y el AÑO DE NACIMIENTO siempre me da un numero inmensamente grande y de paso negativo. Si calculo con el año 00 (O sea 1900) me da que la edad es 106.

3. Ya estoy aburrido.

Última edición por makeitslow; 03/06/2007 a las 13:17