Avatar Image
Machacateclados
Machacateclados

Tengo otro problema... Necesito calcular la edad du un usuario en base a su fecha de nacimiento. La fecha reside en tres variables, una para el dia, otra para el mes y la última para el año.

Se que se puede poner el valor de estas tres variables en una sola variable de valor timestamp, y lo que he intentado es restar el valor timestamp de la fecha de nacimiento, a la fecha timestamp del dia actual. Pero el resultado es como si simplemente restara los años. Osease, un usuario que cumpla 20 años en diciembre aparece con esa edad aunque estemos en Enero... ¿Alguien podria ayudarme?

Mirok_steel
Usuario Novato
Usuario Novato

Vamos a ver, si planteas las condiciones para saber la edad de una persona es muy sencillo, es restar el año actual con el año de nacimiento, pero claro, no hay que olvidarse de los meses donde solo puden haber dos condiciones:
- Que el mes coincida pero el dia sea inferior (entonces no ha cumplido aun años en la fecha actual)

- O que el mes de nacimiento sea superior al mes actual (que tampoco habra cumplido la edad).

Sabiendo esto es muy sencillo calcularlo.

--------------------------------------------------

<?

//fecha actual

$dia=date(j);
$mes=date(n);
$ano=date(Y);

//fecha de nacimiento

$dianaz=2;
$mesnaz=6;
$anonaz=1983;

//si el mes es el mismo pero el dia inferior aun no ha cumplido años, le quitaremos un año al actual


if (($mesnaz == $mes) && ($dianaz > $dia)) {
$ano=($ano-1); }


//si el mes es superior al actual tampoco abra cumplido años, por eso le quitamos un año al actual

if ($mesnaz > $mes) {
$ano=($ano-1);}

//ya no habria mas condiciones, ahora simplemente restamos los años y mostramos el resultado como su edad

$edad=($ano-$anonaz);

print $edad;


?>


Este seria un sencillo ejemplo de como calcularias la edad de una persona, espero que te sea de ayuda. Saludos.

Avatar Image
Machacateclados
Machacateclados

Muchas gracias Mirok_steel, yo apegado a la comodidad de los valores del timestamp que simplemente no pense en hacerlo así de simple.

atoio
Usuario Novato
Usuario Novato

Hola amigos estoy en algo igual tengo que hacer un programa que calcule la edad por mediante su fecha de nacimiento y ademas saber cunatos años tines cuantos dias faltan para que vuelva a cumplir saber si es bisiesto o no el dia en que nacio nombre del mes el numero del dia del año (365)

gracias

Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por atoio
Hola amigos estoy en algo igual tengo que hacer un programa que calcule la edad por mediante su fecha de nacimiento y ademas saber cunatos años tines cuantos dias faltan para que vuelva a cumplir saber si es bisiesto o no el dia en que nacio nombre del mes el numero del dia del año (365)

gracias
Aja y cual es la ayuda que necesitas (aparte de que reviviste un tema viejo, que necesitas).
andruqui
Usuario Novato
Usuario Novato

Lo mejor es tener toda la data en un campo solo, no separarlos en distintos datos: YYYY-MM-DD

Luego podes hacer esta consulta:

SELECT nombre, nacimiento, CURRENT_DATE,
(YEAR(CURRENT_DATE) - YEAR(nacimiento)) - (RIGHT(CURRENT_DATE,5) < RIGHT(nacimiento,5)) AS edad FROM tabla;

y problema solucionado.
Saludos

atoio
Usuario Novato
Usuario Novato

bueno la verdad es que era facil lo que necesitaba era mas bien la formula pero eso ya lo hice varios años de toda forma dejo como me quedo hay va el link:
https://calculafecha.webcindario.com/
Pdta: siento la demora pero el que dese ayuda con gusto

andruqui
Usuario Novato
Usuario Novato

y el codigo ?
Esa es la gracia, compartirlo

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
No se han encontrado temas similares