Foros del Web » Programando para Internet » PHP »

Extrae fecha de nacimiento de bd para cálculo de edad

Estas en el tema de Extrae fecha de nacimiento de bd para cálculo de edad en el foro de PHP en Foros del Web. Buen día compañero de nuevo aquí con mis dudas de antemano participo que estoy iniciándome en este maravilloso mundo, la presente es porque no consigo ...
  #1 (permalink)  
Antiguo 03/03/2011, 08:36
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Mensaje Extrae fecha de nacimiento de bd para cálculo de edad

Buen día compañero de nuevo aquí con mis dudas de antemano participo que estoy iniciándome en este maravilloso mundo, la presente es porque no consigo como calcula la edad a partir de una fecha de nacimiento conseguí este código:

<?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 <?php echo edad("1992-03-06");?>
Y si da la edad dependiendo la fecha de nacimiento que uno le ponga <?php echo edad("1992-03-06");?>
Mi pregunta es como logro colocar el campo dinámico de bd mysql en <?php echo edad("1992-03-06");?>
De ante mano gracias
  #2 (permalink)  
Antiguo 03/03/2011, 08:43
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

pequeña modificación a tu función :P

Código PHP:
<?php
function edad($edad)
{
    return 
round((time() - strtotime($edad)) / 31587840);
}
echo 
edad('1987-02-17');

ahora para obtener un dato de SQL..
www.php.net/mysql
  #3 (permalink)  
Antiguo 03/03/2011, 08:51
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 6 meses
Puntos: 394
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

Depende mucho del tipo de dato que tengas en MySql... si es DATE o DATETIME... podrías darnos esa información ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #4 (permalink)  
Antiguo 03/03/2011, 08:57
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

la base de datos se llama "Gsturb" y la tabla de donde quiero que me calcule la edad cuando consulte el representantes es:

CREATE TABLE IF NOT EXISTS `representante` (
`id_repr` int(11) NOT NULL AUTO_INCREMENT,
`representante` varchar(50) NOT NULL,
`ced_repr` int(11) DEFAULT NULL,
`f_nacimiento` date NOT NULL,
`id_sexo` varchar(11) NOT NULL,
`telefono` varchar(11) NOT NULL,
`email` varchar(100) NOT NULL,
PRIMARY KEY (`id_repr`)


el campo es f_nacimiento tipo DATE
lo que quiero es que cuando yo guarde los datos que ya lo hace muy bien, pero cuando yo quiera hacer una consulta en php de ese representante me muestre la edad
  #5 (permalink)  
Antiguo 03/03/2011, 09:02
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

para ver el representante tengo este codigo :

<?php
require_once("../conexion.php");
$sql="select * from representante where id_repr=".$_GET["id_repr"]."";
$res=mysql_query($sql,$con);
?>
<html>
<head>
<title>Principal</title>
<link href="../estilos/estilos.css" type="text/css" rel="stylesheet">
<script language="javascript" type="text/javascript" src="../js/funciones.js"></script>
<script language="javascript">

function cancelar() {
location.href="index.php";
}

var cursor;
if (document.all) {
// Está utilizando EXPLORER
cursor='hand';
} else {
// Está utilizando MOZILLA/NETSCAPE
cursor='pointer';
}

function aceptar() {
location.href="index.php?cadena_busqueda=<?php echo $cadena_busqueda?>";
parent.window.close();
}

</script>
</head>
<body>
<?php
if ($reg=mysql_fetch_array($res))
{
?>
<div id="pagina">
<div id="zonaContenido">
<div align="center">
<div id="tituloForm" class="header">visualizar vivienda </div>
<div id="frmBusqueda">
<form action="edit_viv.php" method="post" name="form" id="form">
<table class="fuente8" width="98%" cellspacing=0 cellpadding=3 border=0>
<tr>
<td width="10%">Representante</td>
<td width="100%"><?php echo chao_tilde($reg["representante"]); ?></td>
</tr>
<tr>
<td>C&eacute;dula Identidad </td>
<td><?php echo $reg["ced_repr"]; ?></td>
</tr>
<tr>
<td>F. Nacimiento </td>
<td><?php echo $reg["f_nacimiento"]; ?></td>
</tr>
<td>Edad</td>
<td><?php echo $reg["edad"]; ?></td>
</tr>
<tr>
<td>Sexo </td>
<td><?php echo $reg["id_sexo"]; ?></td>
</tr>
<tr>
<td>Tel&eacute;no </td>
<td><?php echo $reg["telefono"]; ?></td>
</tr>
<tr>
<td>E-Mail </td>
<td><?php echo $reg["email"]; ?></td>
</tr>
<input type="hidden" name="id_viv" value="<?php echo $_GET["id_repr"];?>" />
</table>
</div>
<div id="botonBusqueda">

<img src="http://www.forosdelweb.com/f18/img/botonaceptar.jpg" width="85" height="22" onClick="aceptar()" border="1" onMouseOver="style.cursor=cursor">

</div>

</form>
</div>
</div>
</div>
<?php
}
?>
</body>
</html>
  #6 (permalink)  
Antiguo 03/03/2011, 09:03
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

quiero que en:
</tr>
<td>Edad</td>
<td><?php echo $reg["edad"]; ?></td>
</tr>
me haga el calculo de la edad
  #7 (permalink)  
Antiguo 03/03/2011, 09:07
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 6 meses
Puntos: 394
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

pues como lo veo podrias colocar <?php echo edad($reg["edad"]);?>
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #8 (permalink)  
Antiguo 03/03/2011, 09:22
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

umm me manda es el año 2011 eso que me refleja.

hay tantos ejemplo de calculo de edad pero ninguno de como extraer la fecha de nacimiento dependiendo el id de la persona que se le quiera ver la edad
  #9 (permalink)  
Antiguo 03/03/2011, 09:27
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

sabes que pongo esta consulta en el navicat que donde creo las bd y las tablas en la parte de query pongo esta consulta:

SELECT YEAR(CURDATE())-YEAR(representante.f_nacimiento) + IF(DATE_FORMAT(CURDATE(),'%m-%d')
> DATE_FORMAT(representante.f_nacimiento,'%m-%d'), 0, -1) AS EDAD_ACTUAL FROM representante
WHERE representante.id_repr='222' AND representante.id_repr='222';

y me arroga el resultado de la edad dependiendo del id del representante realiza el calculo muy bien pero copio esa consulta en el php y no me realiza el calculo no se que estoy haciendo mal para ver si lo podia hacer asi pero nada tampoco jejejejeje ya me estoy dando porencido pero es un requerimiento que me estan pidiendo para entregar la actvividad
  #10 (permalink)  
Antiguo 03/03/2011, 09:36
Avatar de arepavieja  
Fecha de Ingreso: marzo-2011
Mensajes: 207
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

<?php $fechaInicio ="Aqui pones el campo que extraes de la base de datos, (f_nacimiento)";

$fechaActual = "14/02/2011";

$fecha1 = explode("/",$fechaInicio);

$fecha2 = explode("/",$fechaActual);



/*$diaActual = substr($fechaActual, 0, 2);

$mesActual = substr($fechaActual, 3, 5);

$anioActual = substr($fechaActual, 6, 10);

$diaInicio = substr($fechaInicio, 0, 2);

$mesInicio = substr($fechaInicio, 3, 5);

$anioInicio = substr($fechaInicio, 6, 10); */



$diaActual = $fecha2[0];

$mesActual = $fecha2[1];

$anioActual = $fecha2[2];

$diaInicio = $fecha1[0];

$mesInicio = $fecha1[1];

$anioInicio = $fecha1[2];



$b = 0;

$mes = $mesInicio-1;

if($mes==2){

if(($anioActual%4==0 && $anioActual%100!=0) || $anioActual%400==0){

$b = 29;

}else{

$b = 28;

}

}

else if($mes<=7){

if($mes==0){

$b = 31;

}

else if($mes%2==0){

$b = 30;

}

else{

$b = 31;

}

}

else if($mes>7){

if($mes%2==0){

$b = 31;

}

else{

$b = 30;

}

}

if(($anioInicio>$anioActual) || ($anioInicio==$anioActual && $mesInicio>$mesActual) ||

($anioInicio==$anioActual && $mesInicio == $mesActual && $diaInicio>$diaActual)){

echo "La fecha de inicio ha de ser anterior a la fecha Actual";

}else{

if($mesInicio <= $mesActual){

$anios = $anioActual - $anioInicio;

if($diaInicio <= $diaActual){

$meses = $mesActual - $mesInicio;

$dies = $diaActual - $diaInicio;

}else{

if($mesActual == $mesInicio){

$anios = $anios - 1;

}

$meses = ($mesActual - $mesInicio - 1 + 12) % 12;

$dies = $b-($diaInicio-$diaActual);

}

}else{

$anios = $anioActual - $anioInicio - 1;

if($diaInicio > $diaActual){

$meses = $mesActual - $mesInicio -1 +12;

$dies = $b - ($diaInicio-$diaActual);

}else{

$meses = $mesActual - $mesInicio + 12;

$dies = $diaActual - $diaInicio;

}

}

echo "Años: ".$anios." <br />";

echo "Meses: ".$meses." <br />";

echo "Días: ".$dies." <br />";

}?>
  #11 (permalink)  
Antiguo 03/03/2011, 09:37
Avatar de arepavieja  
Fecha de Ingreso: marzo-2011
Mensajes: 207
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

Cita:
Iniciado por arepavieja Ver Mensaje
<?php $fechaInicio ="Aqui pones el campo que extraes de la base de datos, (f_nacimiento)";

$fechaActual = "14/02/2011";

$fecha1 = explode("/",$fechaInicio);

$fecha2 = explode("/",$fechaActual);



/*$diaActual = substr($fechaActual, 0, 2);

$mesActual = substr($fechaActual, 3, 5);

$anioActual = substr($fechaActual, 6, 10);

$diaInicio = substr($fechaInicio, 0, 2);

$mesInicio = substr($fechaInicio, 3, 5);

$anioInicio = substr($fechaInicio, 6, 10); */



$diaActual = $fecha2[0];

$mesActual = $fecha2[1];

$anioActual = $fecha2[2];

$diaInicio = $fecha1[0];

$mesInicio = $fecha1[1];

$anioInicio = $fecha1[2];



$b = 0;

$mes = $mesInicio-1;

if($mes==2){

if(($anioActual%4==0 && $anioActual%100!=0) || $anioActual%400==0){

$b = 29;

}else{

$b = 28;

}

}

else if($mes<=7){

if($mes==0){

$b = 31;

}

else if($mes%2==0){

$b = 30;

}

else{

$b = 31;

}

}

else if($mes>7){

if($mes%2==0){

$b = 31;

}

else{

$b = 30;

}

}

if(($anioInicio>$anioActual) || ($anioInicio==$anioActual && $mesInicio>$mesActual) ||

($anioInicio==$anioActual && $mesInicio == $mesActual && $diaInicio>$diaActual)){

echo "La fecha de inicio ha de ser anterior a la fecha Actual";

}else{

if($mesInicio <= $mesActual){

$anios = $anioActual - $anioInicio;

if($diaInicio <= $diaActual){

$meses = $mesActual - $mesInicio;

$dies = $diaActual - $diaInicio;

}else{

if($mesActual == $mesInicio){

$anios = $anios - 1;

}

$meses = ($mesActual - $mesInicio - 1 + 12) % 12;

$dies = $b-($diaInicio-$diaActual);

}

}else{

$anios = $anioActual - $anioInicio - 1;

if($diaInicio > $diaActual){

$meses = $mesActual - $mesInicio -1 +12;

$dies = $b - ($diaInicio-$diaActual);

}else{

$meses = $mesActual - $mesInicio + 12;

$dies = $diaActual - $diaInicio;

}

}

echo "Años: ".$anios." <br />";

echo "Meses: ".$meses." <br />";

echo "Días: ".$dies." <br />";

}?>
se me olvidó, en fecha actual pones la fecha de hoy, el resultado te va adar la fecha en años meses y dias
  #12 (permalink)  
Antiguo 03/03/2011, 10:16
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

No compa me disculpa mi ignorancia pero nada que doy con la respuesta bueno a entregar esto así no logro entender ya no se qué hacer.
Eso como que le pasa a uno cuando lo único que sabe es copiar y pegar pero bueno como estoy nuevo en esto espero que a medida que pase el tiempo me este reiendo de este problema por los momento se me ha vuelto el talón de aquile jejejjejej. De antema gracias a todos ustedes por dedicarme un poquito de su valioso tiempo.
  #13 (permalink)  
Antiguo 03/03/2011, 10:29
Avatar de arepavieja  
Fecha de Ingreso: marzo-2011
Mensajes: 207
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

queda así:

Código PHP:
Ver original
  1. <?php
  2. $conexion = ("host","uuario","clave");
  3. $bd = mysql_connect_db("base_de_datos", $conexion);
  4. $consulta = "SELECT * FROM representante"; // O lo que sea tu consulta.
  5. $consultaq = mysql_query($consulta);
  6. $rows = mysql_fetch_assoc($consultaq);
  7.  
  8. $fechaInicio = $rows['f_nacimiento'];
  9.  
  10. $fechaActual = date('Y-m-d');
  11.  
  12. // De Aqui en adelante no modifiques nada.
  13.  
  14. $fecha1 = explode("/",$fechaInicio);
  15. $fecha2 = explode("/",$fechaActual);
  16.  
  17.  
  18. $diaActual = $fecha2[0];
  19. $mesActual = $fecha2[1];
  20. $anioActual = $fecha2[2];
  21. $diaInicio = $fecha1[0];
  22. $mesInicio = $fecha1[1];
  23. $anioInicio = $fecha1[2];
  24. $b = 0;
  25. $mes = $mesInicio-1;
  26. if($mes==2){
  27. if(($anioActual%4==0 && $anioActual%100!=0) || $anioActual%400==0){
  28. $b = 29;
  29. }else{
  30. $b = 28;
  31. }
  32. }
  33. else if($mes<=7){
  34. if($mes==0){
  35. $b = 31;
  36. }
  37. else if($mes%2==0){
  38. $b = 30;
  39. }
  40. else{
  41. $b = 31;
  42. }
  43. }
  44. else if($mes>7){
  45. if($mes%2==0){
  46. $b = 31;
  47. }
  48. else{
  49. $b = 30;
  50. }
  51. }
  52. if(($anioInicio>$anioActual) || ($anioInicio==$anioActual && $mesInicio>$mesActual) ||
  53. ($anioInicio==$anioActual && $mesInicio == $mesActual && $diaInicio>$diaActual)){
  54. echo "La fecha de inicio ha de ser anterior a la fecha Actual";
  55. }else{
  56. if($mesInicio <= $mesActual){
  57. $anios = $anioActual - $anioInicio;
  58. if($diaInicio <= $diaActual){
  59. $meses = $mesActual - $mesInicio;
  60. $dies = $diaActual - $diaInicio;
  61. }else{
  62. if($mesActual == $mesInicio){
  63. $anios = $anios - 1;
  64. }
  65. $meses = ($mesActual - $mesInicio - 1 + 12) % 12;
  66. $dies = $b-($diaInicio-$diaActual);
  67. }
  68. }else{
  69. $anios = $anioActual - $anioInicio - 1;
  70. if($diaInicio > $diaActual){
  71. $meses = $mesActual - $mesInicio -1 +12;
  72. $dies = $b - ($diaInicio-$diaActual);
  73. }else{
  74. $meses = $mesActual - $mesInicio + 12;
  75. $dies = $diaActual - $diaInicio;
  76. }
  77. }
  78.  
  79. // AQUI IMPRIMES LOS RESULTADOS
  80. echo "Años: ".$anios." <br />";
  81. echo "Meses: ".$meses." <br />";
  82. echo "Días: ".$dies." <br />";
  83. }
  84. ?>
  #14 (permalink)  
Antiguo 03/03/2011, 10:48
Avatar de arepavieja  
Fecha de Ingreso: marzo-2011
Mensajes: 207
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

Cita:
Iniciado por arepavieja Ver Mensaje
queda así:

Código PHP:
Ver original
  1. <?php
  2. $conexion = ("host","uuario","clave");
  3. $bd = mysql_connect_db("base_de_datos", $conexion);
  4. $consulta = "SELECT * FROM representante"; // O lo que sea tu consulta.
  5. $consultaq = mysql_query($consulta);
  6. $rows = mysql_fetch_assoc($consultaq);
  7.  
  8. $fechaInicio = $rows['f_nacimiento'];
  9.  
  10. $fechaActual = date('Y-m-d');
  11.  
  12. // De Aqui en adelante no modifiques nada.
  13.  
  14. $fecha1 = explode("/",$fechaInicio);
  15. $fecha2 = explode("/",$fechaActual);
  16.  
  17.  
  18. $diaActual = $fecha2[0];
  19. $mesActual = $fecha2[1];
  20. $anioActual = $fecha2[2];
  21. $diaInicio = $fecha1[0];
  22. $mesInicio = $fecha1[1];
  23. $anioInicio = $fecha1[2];
  24. $b = 0;
  25. $mes = $mesInicio-1;
  26. if($mes==2){
  27. if(($anioActual%4==0 && $anioActual%100!=0) || $anioActual%400==0){
  28. $b = 29;
  29. }else{
  30. $b = 28;
  31. }
  32. }
  33. else if($mes<=7){
  34. if($mes==0){
  35. $b = 31;
  36. }
  37. else if($mes%2==0){
  38. $b = 30;
  39. }
  40. else{
  41. $b = 31;
  42. }
  43. }
  44. else if($mes>7){
  45. if($mes%2==0){
  46. $b = 31;
  47. }
  48. else{
  49. $b = 30;
  50. }
  51. }
  52. if(($anioInicio>$anioActual) || ($anioInicio==$anioActual && $mesInicio>$mesActual) ||
  53. ($anioInicio==$anioActual && $mesInicio == $mesActual && $diaInicio>$diaActual)){
  54. echo "La fecha de inicio ha de ser anterior a la fecha Actual";
  55. }else{
  56. if($mesInicio <= $mesActual){
  57. $anios = $anioActual - $anioInicio;
  58. if($diaInicio <= $diaActual){
  59. $meses = $mesActual - $mesInicio;
  60. $dies = $diaActual - $diaInicio;
  61. }else{
  62. if($mesActual == $mesInicio){
  63. $anios = $anios - 1;
  64. }
  65. $meses = ($mesActual - $mesInicio - 1 + 12) % 12;
  66. $dies = $b-($diaInicio-$diaActual);
  67. }
  68. }else{
  69. $anios = $anioActual - $anioInicio - 1;
  70. if($diaInicio > $diaActual){
  71. $meses = $mesActual - $mesInicio -1 +12;
  72. $dies = $b - ($diaInicio-$diaActual);
  73. }else{
  74. $meses = $mesActual - $mesInicio + 12;
  75. $dies = $diaActual - $diaInicio;
  76. }
  77. }
  78.  
  79. // AQUI IMPRIMES LOS RESULTADOS
  80. echo "Años: ".$anios." <br />";
  81. echo "Meses: ".$meses." <br />";
  82. echo "Días: ".$dies." <br />";
  83. }
  84. ?>
jaja me confundí con algo.. en el explode no va "/" sino "-"
  #15 (permalink)  
Antiguo 03/03/2011, 11:04
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

no me dios lo bendiga so lo maximo pero me queda una duda jejejje!!!!
el resultamo me lo muestra es asi:
Años: 0
Meses: 0
Días: 29
en el dia es que me manda el año que tiene pero resulata la f_nacimiento de ese id_repr es 1982-07-06 por ende aun no a cumplido los 29 años faltarias faltando 3 meses para que cumpla
  #16 (permalink)  
Antiguo 03/03/2011, 11:11
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

a otra cosita le cambien "/" por "-" ys olo me imprime: La fecha de inicio ha de ser anterior a la fecha Actual
cuando lo dejo con "/" si me imprime la consulta:
Años: 0
Meses: 0
Días: 29
  #17 (permalink)  
Antiguo 03/03/2011, 11:29
Avatar de arepavieja  
Fecha de Ingreso: marzo-2011
Mensajes: 207
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

bueno. supongo que en la base de datos las fechas estan en formato año-mes-dia, es asi como lo recibes en $fechainicio. te digo que cambies el "/" por el "-" porque la variable f_nacimiento tiene ese formato separado por guiones, y al hacer explode debemos separar por ese parametro "-".

En cuanto al error que te muestra debe ser por la configuración de fecha del servidor. obviamente la fecha de nacimiento debe ser menor a la actual. revisa si el equipo que funciona como servidor tiene la fecha correcta.
  #18 (permalink)  
Antiguo 03/03/2011, 13:18
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

yo como servidor local estoy utilizando xampp y la fecha de mi pc que es donde esta instaldo esta bien el formato de fecha dal campo f_nacimiento de la tabla representante es año-mes-dia
  #19 (permalink)  
Antiguo 03/03/2011, 13:38
Avatar de arepavieja  
Fecha de Ingreso: marzo-2011
Mensajes: 207
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

$fecha1 = explode("/",$fechaInicio);
$fecha2 = explode("/",$fechaActual);

Esas dos lineas deben quedar asi:

$fecha1 = explode("-",$fechaInicio);
$fecha2 = explode("-",$fechaActual);

Ya que tu fecha tiene el formato año-mes-dia.
Pero que raro, este código siempre me ha funcionado para calcular fechas. y el error que sale, las únicas veces que me ha salido han sido por la fecha del servidor.
  #20 (permalink)  
Antiguo 03/03/2011, 14:25
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

compa cuando la pongo asi me sale con "-" memanda el mensaje La fecha de inicio ha de ser anterior a la fecha Actual

y ya la pcdonde tengo instalado el xampp como servidor local le cambien el formato de fecha a año-mes-dias.
  #21 (permalink)  
Antiguo 03/03/2011, 14:29
Avatar de arepavieja  
Fecha de Ingreso: marzo-2011
Mensajes: 207
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

jaja.. que raro.. y la fecha actual también esta en formato año-mes-dia? me refiero... separada por guiones..? casualmente hace rato probé el código y funcionó a la perfección.
  #22 (permalink)  
Antiguo 03/03/2011, 14:34
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

si esta con año-mes-dias
  #23 (permalink)  
Antiguo 03/03/2011, 14:35
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

verga tengo algo mal yo pero e realizado todo yus paso
  #24 (permalink)  
Antiguo 03/03/2011, 14:36
 
Fecha de Ingreso: octubre-2008
Mensajes: 37
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

este es el codigo que tengo:

<?php
require_once("../conexion.php");

$consulta = "SELECT * FROM representante where id_repr='222'"; // O lo que sea tu consulta.
$consultaq = mysql_query($consulta);
$rows = mysql_fetch_assoc($consultaq);

$fechaInicio = $rows['f_nacimiento'];

$fechaActual = date('2011-03-03');
// De Aqui en adelante no modifiques nada.
$fecha2 = explode("/",$fechaActual);
$fecha1 = explode("/",$fechaInicio);

$diaActual = $fecha2[0];
$mesActual = $fecha2[1];
$anioActual = $fecha2[2];
$diaInicio = $fecha1[0];
$mesInicio = $fecha1[1];
$anioInicio = $fecha1[2];
$b = 0;
$mes = $mesInicio-1;
if($mes==2){
if(($anioActual%4==0 && $anioActual%100!=0) || $anioActual%400==0){
$b = 29;
}else{
$b = 28;

}
}
else if($mes<=7){
if($mes==0){
$b = 31;
}
else if($mes%2==0){
$b = 30;
}
else{
$b = 31;
}
}

else if($mes>7){

if($mes%2==0){
$b = 31;
}
else{
$b = 30;
}
}
if(($anioInicio>$anioActual) || ($anioInicio==$anioActual && $mesInicio>$mesActual) ||

($anioInicio==$anioActual && $mesInicio == $mesActual && $diaInicio>$diaActual)){
echo "La fecha de inicio ha de ser anterior a la fecha Actual";
}else{
if($mesInicio <= $mesActual){
$anios = $anioActual - $anioInicio;

if($diaInicio <= $diaActual){
$meses = $mesActual - $mesInicio;
$dies = $diaActual - $diaInicio;
}else{
if($mesActual == $mesInicio){
$anios = $anios - 1;
}
$meses = ($mesActual - $mesInicio - 1 + 12) % 12;
$dies = $b-($diaInicio-$diaActual);
}
}else{
$anios = $anioActual - $anioInicio - 1;
if($diaInicio > $diaActual){
$meses = $mesActual - $mesInicio -1 +12;
$dies = $b - ($diaInicio-$diaActual);
}else{

$meses = $mesActual - $mesInicio + 12;
$dies = $diaActual - $diaInicio;

}

}


// AQUI IMPRIMES LOS RESULTADOS

echo "Años: ".$anios." <br />";

echo "Meses: ".$meses." <br />";

echo "Días: ".$dies." <br />";
}

?>
  #25 (permalink)  
Antiguo 03/03/2011, 16:42
Avatar de arepavieja  
Fecha de Ingreso: marzo-2011
Mensajes: 207
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

lo extraño es que si la variable es año-mes-dia entonces hagas explode con "/" ya que el explode te va a separar los valores unidos por "-", es decir, si le haces un explode a año-mes-dia te devuelve un array con 3 valores... año mes y dia... para trabajarlos en variables separadas. y y la base de datos debe estar en el mismo formato... ahh y el año representado por 4 digitos.
  #26 (permalink)  
Antiguo 11/03/2016, 21:51
 
Fecha de Ingreso: marzo-2016
Mensajes: 1
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

La mejor formula para sacar el calculo de la edad probado es esta extrayendo los datos de la BD en mi caso extraigo mediante un while la fecha y paso la siguiente formula como veran en el codigo.

<?php
$con=mysqli_connect("servidor","usuario","password ","base_de_datos_seleccionada");
$peticion="-Aqui la consulta SQL para extraer los datos de la tabla-";
$resultado=mysqli_query($con, $peticion);
while ($fila=mysqli_fetch_array($resultado)) {

//esta formula calcula edad a partir de la fecha de nacimiento de quien sea
$anios=round((time() - strtotime($fila['fecha_nac'])) / 31556926);

?>

<tr>

<td ><?php echo $fila['dato1']; ?></td>
<td ><?php echo $fila['dato2']; ?></td>
<td ><?php echo $anios ;?></td>--------->dato3 imprime la fecha muy bien
<td ><?php echo $fila['dato4']; ?></td>

</tr>
<?php
}
?>
</table>

Espero poder haber ayudado Saludos.

Última edición por axelfoxII; 11/03/2016 a las 22:00
  #27 (permalink)  
Antiguo 12/03/2016, 17:19
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: Extrae fecha de nacimiento de bd para cálculo de edad

Ojalá que 4 años después le haya servido tu respuesta, y la pueda usar, gracias!

Etiquetas: bd, edad, extrae, fechas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:59.