3 millones en foros del web

Registrarte Políticas Wiki 120segs Ayuda Iniciar sesion

Avisos

Retroceder   Foros del Web > Programación para sitios web > PHP
Tema Cerrado
 
Herramientas Desplegado
Antiguo 07-dic-2006, 04:24   #1 (permalink)
holahola (Reg: mayo-2005)
 
214 Mensajes
Ubicación: Móstoles - (Madrid)
holahola está desconectado
Otro cálculo de edad (con años, meses y días) en php

Hola. Para una aplicación necesité obtener la edad con el formato de "Tengo x años, x meses y x días" y lo publico aquí, por si alguien lo necesita. Estoy convencido que esto ya existe en la red (de hecho, la base la tomé de algún sitio que ahora no recuerdo), pero como no lo encontré, lo publico en este estupendo foro.

Está basado en restar los años, meses y días, y se tiene en cuenta que tanto los meses como los días podrían dar negativo, para reajustarlos.

Código PHP:
<?php
$fecha_de_nacimiento 
"1948-05-11";
$fecha_actual date ("Y-m-d");
//$fecha_actual = date ("2006-03-05"); //para pruebas

echo "<br>Hoy es $fecha_actual";
echo 
"<br>Naciste el $fecha_de_nacimiento";

// separamos en partes las fechas
$array_nacimiento explode "-"$fecha_de_nacimiento );
$array_actual explode "-"$fecha_actual );

$anos =  $array_actual[0] - $array_nacimiento[0]; // calculamos años
$meses $array_actual[1] - $array_nacimiento[1]; // calculamos meses
$dias =  $array_actual[2] - $array_nacimiento[2]; // calculamos días

//ajuste de posible negativo en $días
if ($dias 0)
{
    --
$meses;

    
//ahora hay que sumar a $dias los dias que tiene el mes anterior de la fecha actual
    
switch ($array_actual[1]) {
           case 
1:     $dias_mes_anterior=31; break;
           case 
2:     $dias_mes_anterior=31; break;
           case 
3
                if (
bisiesto($array_actual[0]))
                {
                    
$dias_mes_anterior=29; break;
                } else {
                    
$dias_mes_anterior=28; break;
                }
           case 
4:     $dias_mes_anterior=31; break;
           case 
5:     $dias_mes_anterior=30; break;
           case 
6:     $dias_mes_anterior=31; break;
           case 
7:     $dias_mes_anterior=30; break;
           case 
8:     $dias_mes_anterior=31; break;
           case 
9:     $dias_mes_anterior=31; break;
           case 
10:     $dias_mes_anterior=30; break;
           case 
11:     $dias_mes_anterior=31; break;
           case 
12:     $dias_mes_anterior=30; break;
    }

    
$dias=$dias $dias_mes_anterior;
}

//ajuste de posible negativo en $meses
if ($meses 0)
{
    --
$anos;
    
$meses=$meses 12;
}

echo 
"<br>Tu edad es: $anos años con $meses meses y $dias días";

function 
bisiesto($anio_actual){
    
$bisiesto=false;
    
//probamos si el mes de febrero del año actual tiene 29 días
      
if (checkdate(2,29,$anio_actual))
      {
        
$bisiesto=true;
    }
    return 
$bisiesto;
}
?>
Un saludo.
 
Antiguo 09-dic-2006, 09:33   #2 (permalink)
Erikfrancisco (Reg: noviembre-2003)
 
499 Mensajes
Ubicación: Estado de México
Erikfrancisco está desconectado
Re: Otro cálculo de edad (con años, meses y días) en php

Felicidades, me parece muy bueno tu código y el hecho de que lo quieras compartir. Un saludo y te deseo mucha suerte
 
Antiguo 09-dic-2006, 09:58   #3 (permalink)
holahola (Reg: mayo-2005)
 
214 Mensajes
Ubicación: Móstoles - (Madrid)
holahola está desconectado
Re: Otro cálculo de edad (con años, meses y días) en php

Cita:
Iniciado por Erikfrancisco Ver Mensaje
Felicidades, me parece muy bueno tu código y el hecho de que lo quieras compartir. Un saludo y te deseo mucha suerte
Gracias Erikfrancisco y un saludo. Un detalle por tu parte por recomendar el código en alguna de tus respuestas.

Última edición por holahola; 09-dic-2006 a las 10:08
 
Tema Cerrado
SíEste tema le ha gustado a 2 personas (incluyéndote)
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.

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code está Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado
Trackbacks está Desactivado
Pingbacks está Desactivado
Refbacks está Desactivado



La zona horaria es GMT -6. Ahora son las 20:57.
Políticas de Uso de Foros del Web


Message Board Statistics

SEO by vBSEO 3.3.2

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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106