Estuve viendo por ahi, y encontrer 2 funcion y una operacion para calcular la edad, una es en JavaScript
:
Código:
//calcular la edad de una persona
//recibe la fecha como un string en formato español
//devuelve un entero con la edad. Devuelve false en caso de que la fecha sea incorrecta o mayor que el dia actual
function calcular_edad(fecha){
//calculo la fecha de hoy
hoy=new Date()
//alert(hoy)
//calculo la fecha que recibo
//La descompongo en un array
var array_fecha = fecha.split("/")
//si el array no tiene tres partes, la fecha es incorrecta
if (array_fecha.length!=3)
return false
//compruebo que los ano, mes, dia son correctos
var ano
ano = parseInt(array_fecha[2]);
if (isNaN(ano))
return false
var mes
mes = parseInt(array_fecha[1]);
if (isNaN(mes))
return false
var dia
dia = parseInt(array_fecha[0]);
if (isNaN(dia))
return false
//si el año de la fecha que recibo solo tiene 2 cifras hay que cambiarlo a 4
if (ano<=99)
ano +=1900
//resto los años de las dos fechas
edad=hoy.getYear()- ano - 1; //-1 porque no se si ha cumplido años ya este año
//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) //+ 1 porque los meses empiezan en 0
return edad
if (hoy.getMonth() + 1 - mes > 0)
return edad+1
//entonces es que eran iguales. miro los dias
//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
}
y otra en PHP:
Código PHP:
<?php
// Calcula la edad (formato: año/mes/dia)
function edad($edad){
list($anio,$mes,$dia) = explode("-",$edad);
$anio_dif = date("Y") - $anio;
$mes_dif = date("m") - $mes;
$dia_dif = date("d") - $dia;
if ($dia_dif < 0 || $mes_dif < 0)
$anio_dif--;
return $anio_dif;
}
?>
La edad es <?=edad("1992-03-06");?>
Y la operacion:
Código PHP:
$fecha1 = explode("-","1980-01-01"); // fecha nacimiento
$fecha2 = explode("-",date("Y-m-d")); // fecha actual
$Edad = $fecha2[0]-$fecha1[0];
if($fecha2[1]<=$fecha1[1] and $fecha2[2]<=$fecha1[2]){
$Edad = $Edad - 1;
}
print $Edad; // debe tener 27
Ambas son correctas, pero no se como usarlas para hacer el calculo inmediato con eventos de click del mouse, bueno eso se me ocurre para calcular la edad en la misma pagina sin cargar nada solo haciendo click en el textfield siguiente que es el de edad. Pense hacerlo con el
onClick del textfield, pero creo que solo puede recibir metodos de JS sin variables, pense tambien poner el proceso en el
value, pero para ello definitivamente tengo que hacer un evento adicional para que realice el calculo....
Bueno, no se me ocurre otra cosa... trate con lo mas simple, definir variables hidden y luego hacer el simple calculo de fechas en el textfield, pero tampoco.
Alguien sabe?? Como podria pasarle el valor de una variable a una funcion de JS???