PHP - calcular edad a partir de la fecha de nacimiento

 
Vista:
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

calcular edad a partir de la fecha de nacimiento

Publicado por zendi (1056 intervenciones) el 17/10/2014 23:44:33
Como haria para llamar esta funcion para calcular la edad

1
2
3
4
5
6
7
function calculaedad(){
$date2 = date('Y-m-d');//
$diff = abs(strtotime($date2) - strtotime('1999-11-04'));
$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
}

En este input type :
1
2
3
4
5
6
7
<TR>
 
	<td>Fecha de Nac.:</td>
    <td><input type="text" size=10 maxlength=10 name="fechanac" onKeyUp="mascara(this,'/',patron,true)">
 
</td>
</TR>
porque en javascript es con onBlur
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

calcular edad a partir de la fecha de nacimiento

Publicado por zendi (1056 intervenciones) el 18/10/2014 00:04:19
Bueno lo estoy haciendo de esta forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<TR>
	<td>Fecha de Nacimiento:</td>
    <td><input type="text" size=10 maxlength=10 name="fechanaci">
 
<?php
$fecha = $_POST['fechanaci'];
$date2 = date('Y-m-d');//la fecha del computador
$diff = abs(strtotime($date2) - $fecha);
$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
 
?>
</td>
</TR>
 
<TR>
    <td><input type="text" size=10 maxlength=10 name="edad" value="<?php echo $days?>">
</tr>
pero sigue la falla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

calcular edad a partir de la fecha de nacimiento

Publicado por Alejandro (832 intervenciones) el 18/10/2014 17:33:32
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<form method="post">
    <input type="text" name="fecha" />
    <input type="submit" value="Calcular"/>
</form>
 
<?
function edad($fecha){
    $fecha = str_replace("/","-",$fecha);
    $fecha = date('Y/m/d',strtotime($fecha));
    $hoy = date('Y/m/d');
    $edad = $hoy - $fecha;
    return $edad;
}
 
if (isset($_POST[fecha]))
    echo "Tiene ".edad($_POST[fecha])." Años";
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

calcular edad a partir de la fecha de nacimiento

Publicado por zendi (1056 intervenciones) el 18/10/2014 18:22:32
Hola Alejandro. El asunto es que este formulario que me enviaste:

1
<form method="post"> <input type="text" name="fecha" /> <input type="submit" value="Calcular"/> </form>

debo colocarlo dentro del formulario que estoy usando y ya tiene un submit le coloquè un input type button pero no lo hace.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

calcular edad a partir de la fecha de nacimiento

Publicado por zendi (1056 intervenciones) el 20/10/2014 02:21:22
Bueno aplique el codigo que me enviaste pero no imprime la variable:

si ven algo que este mal por favor.

En realidad yo no veo nada que impida su impresion.
Bueno yo le agreguè algo de html.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
 
<body>
<form method="post">
<input type="text" name="fecha" />
<input type="submit" value="Calcular"/>
</form>
 <?
 function edad($fecha){
$fecha = str_replace("/","-",$fecha);
$fecha = date('Y/m/d',strtotime($fecha));
$hoy = date('Y/m/d');
$edad = $hoy - $fecha; return $edad; }
if (isset($_POST[fecha]))
echo "Tiene ".edad($_POST[fecha])." Años"; ?>
</td>
</tr>
</table>
</form>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

calcular edad a partir de la fecha de nacimiento

Publicado por zendi (1056 intervenciones) el 21/10/2014 02:33:16
De acuerdo Xve, y agradezco tu ayuda, pero mi inquietud es como llamo esa funcion en el input type text del formulario? y disculpa.


esta la funcion que me enviaste:

1
2
3
4
5
/** * Funcion que calcula la edad de una persona en relacion a su fecha de * nacimiento * Tiene que recibir la fecha de nacimiento en formato YYYY-MM-DD */
function getYearsOld($date) {
     list($Y,$m,$d) = explode("-",$date);
     return( date("md") < $m.$d ? date("Y")-$Y-1 : date("Y")-$Y );
}

este el formulario:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<form action="cargapacientes.php" method="POST" name="form1">
<!--<fieldset style='width:auto'><LEGEND>Ingreso Paciente</LEGEND> 
-->
<?php
$connect = pg_connect("host=localhost port=5432 dbname=pediatria user=postgres password=1234");
?>
   <table>
      <tr>
	    <td >Nro de Historia:</td>
<?php
$hoy=date('d-m-Y');
 
 
$query= pg_query("SELECT max(nrohistoria)+1 as MaxNroHistoria FROM paciente");
 if ($row = pg_fetch_row($query))
 {
  $id = str_pad(trim($row[0]),4,"0",STR_PAD_LEFT);
 }
?>
<td class='sr'><input type='text' readonly="T" value="<?php echo $id; ?>" name='nrohistoria' size='10' maxlength='10' align='right'/></td></tr>
<TR>
	<td>Fecha de Nac.:</td>
    <td><input type="text" size=10 maxlength=10 name="fechanac">
 
 
	   </td>
</TR>
</form>
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

calcular edad a partir de la fecha de nacimiento

Publicado por Diego (1 intervención) el 12/05/2016 19:43:00
En este caso te estoy devolviendo solo la edad actual del usuario en años.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
$fechaNacimiento = "1996/03/07"; // por ejemplo, deben de estar separadas por /
 
        if (count(explode("/", $fechaNacimiento)) != 3) {
                // Si no está bien construida la fecha te la pongo a 0000/00/00
		$nacimiento = "0000/00/00";
	} else {
		$nacimiento = $fechaNacimiento;
	}
 
	$fnacimiento = explode("/", $nacimiento);
	$nYear = intval($fnacimiento[0]);
	$nMes  = intval($fnacimiento[1]);
	$nDia  = intval($fnacimiento[2]);
 
	$Year  = intval(date('Y'));
	$Mes   = intval(date('m'));
	$Dia   = intval(date('d'));
 
	$rMes  = 0;
	$rYear = 0;
 
	if ($Dia > $nDia) {
		$rMes = 1;
	}
 
	if ($Mes > $nMes) {
		$rYear = 1;
	} elseif ($Mes == $nMes) {
		if ($rMes == 1) {
		$rYear = 1;
		}
	}
 
	if ($Dia == $nDia and $Mes == $nMes) {
		$rYear = 1;
	}
 
	$edad = $Year - $nYear + $rYear - 1;
 
        print("El usuario tiene: " . $edad . "a&ntilde;os");

Esto te debería de funcionar si o si, es justo lo que he usado yo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

calcular edad a partir de la fecha de nacimiento

Publicado por anibal (2 intervenciones) el 05/06/2019 14:25:27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
//funcion
function edadcronologica ($fnacimento,$fevaluacion){
list( $dianac, $mesnac, $anonac ) = split( '[/.-]', $fnacimento);
list( $diaeva, $meseva, $anoeva ) = split( '[/.-]',$fevaluacion);
// Separa el campo fecha en las tres varibles respectivas ($ano,$mes,$dia);
 
//****************************************************************
if ($diaeva < $dianac)
{
	$diaeva1 = $diaeva + 30 ;
	$diacrono = $diaeva1 - $dianac ;
	$meseva = $meseva - 1;
 
}
else
$diacrono = $diaeva - $dianac ;
 
if ($meseva < $mesnac)
 
{
 
	$meseva1 = $meseva + 12;
	$mescrono = $meseva1 - $mesnac;
	$anoeva = $anoeva -1;
	$anocrono = $anoeva - $anonac;
 
}
else
$mescrono = $meseva - $mesnac;
$anocrono = $anoeva - $anonac;
$edadcrono = $anocrono." años ".$mescrono." mes ".$diacrono." dias";
return $edadcrono;
}
 
echo edadcronologica("22/7/1977","5/6/2019");
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

calcular edad a partir de la fecha de nacimiento

Publicado por anibal (2 intervenciones) el 06/06/2019 13:57:27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
//funcion
function edadcronologica ($fnacimento,$fevaluacion){
list( $dianac, $mesnac, $anonac ) = split( '[/.-]', $fnacimento);
list( $diaeva, $meseva, $anoeva ) = split( '[/.-]',$fevaluacion);
// Separa el campo fecha en las tres varibles respectivas ($ano,$mes,$dia);
 
//****************************************************************
if ($diaeva < $dianac)
{
	$diaeva1 = $diaeva + 30 ;
	$diacrono = $diaeva1 - $dianac ;
	$meseva = $meseva - 1;
 
}
else
$diacrono = $diaeva - $dianac ;
 
if ($meseva < $mesnac)
 
{
 
	$meseva1 = $meseva + 12;
	$mescrono = $meseva1 - $mesnac;
	$anoeva = $anoeva -1;
	$anocrono = $anoeva - $anonac;
 
}
else
$mescrono = $meseva - $mesnac;
$anocrono = $anoeva - $anonac;
$edadcrono = $anocrono." años ".$mescrono." mes ".$diacrono." dias";
return $edadcrono;
}
 
//echo edadcronologica("22/7/1977","5/6/2019");
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar