Foros del Web » Programando para Internet » PHP »

[APORTE] Calcular edad

Estas en el tema de [APORTE] Calcular edad en el foro de PHP en Foros del Web. Buenas, He encontrado diferentes métodos para encontrar la edad de un usuario. Ejemplo1 @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original function Edad ( $fecha_nacimiento ) { ...
  #1 (permalink)  
Antiguo 03/10/2010, 02:36
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
[APORTE] Calcular edad

Buenas,

He encontrado diferentes métodos para encontrar la edad de un usuario.

Ejemplo1
Código PHP:
Ver original
  1. function Edad($fecha_nacimiento){
  2.     //fecha actual
  3.     $dia=date(j);
  4.     $mes=date(n);
  5.     $ano=date(Y);
  6.      
  7.     //fecha de nacimiento
  8.     $dianaz=12;
  9.     $mesnaz=10;
  10.     $anonaz=1985;
  11.      
  12.     //si el mes es el mismo pero el día inferior aun no ha cumplido años, le quitaremos un año al actual
  13.     if (($mesnaz == $mes) && ($dianaz > $dia)) {
  14.     $ano=($ano-1); }
  15.      
  16.     //si el mes es superior al actual tampoco habrá cumplido años, por eso le quitamos un año al actual
  17.     if ($mesnaz > $mes) {
  18.     $ano=($ano-1);}
  19.      
  20.     //ya no habría mas condiciones, ahora simplemente restamos los años y mostramos el resultado como su edad
  21.     $edad=($ano-$anonaz);
  22.     return $edad;
  23. }
  24.  
  25. // Ejecutamos la función
  26. $fecha_nacimiento = "2009/1/1";
  27. echo strtotime($fecha_nacimiento);


Ejemplo2
Código PHP:
Ver original
  1. function determine_age($birth_date)
  2. {
  3. $birth_date_time = strtotime($birth_date);
  4. $to_date = date('m/d/Y', $birth_date_time);
  5.  
  6. list($birth_month, $birth_day, $birth_year) = explode('/', $to_date);
  7.  
  8. $now = time();
  9.  
  10. $current_year = date("Y");
  11.  
  12. $this_year_birth_date = $birth_month.'/'.$birth_day.'/'.$current_year;
  13. $this_year_birth_date_timestamp = strtotime($this_year_birth_date);
  14.  
  15. $years_old = $current_year - $birth_year;
  16.  
  17. if($now < $this_year_birth_date_timestamp)
  18. {
  19. /* his/her birthday hasn't yet arrived this year */
  20. $years_old = $years_old - 1;
  21. }
  22.  
  23. return $years_old;
  24. }
  25.  
  26. // You can write about any English textual datetime description
  27.  
  28. $birth_date = '6 Feb 1985';
  29.  
  30. $age = determine_age($birth_date);
  31.  
  32. echo $age;

Pero sin duda, que os parece el siguiente ejemplo número 3.

Ejemplo3
Código PHP:
Ver original
  1. function get_age($dob)
  2. {
  3.     $t = time();
  4.     $age = ($dob < 0) ? ( $t   ($dob * -1) ) : $t - $dob;
  5.     return floor($age / 31536000); // 60 * 60 * 24 * 365;
  6. }
  7. echo "Edad: ".get_age('504057600');

Hace lo mismo que el resto pero en 3 lineas, me dejo algo¿?

Saludos!
  #2 (permalink)  
Antiguo 03/10/2010, 06:51
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: [APORTE] Calcular edad

Sí es corto, aunque yo lo haría usando la fecha y strtotime, ejemplo
Código PHP:
Ver original
  1. <?php
  2. function getAge($date){
  3.     return floor((time() - strtotime($date)) / 60 / 60 / 24 / 365.25);
  4. }
  5. echo getAge('1981-01-01');
Claro está estoy entendiendo que vas a escribir la fecha bien. Si no vas a tener que hacer condiciones para corroborar que se haya escrito correctamente la fecha.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: edad, aportes, calculadora
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 01:13.