Interesante función que he usado muchas veces para saber en detalle en tiempo de vida de una persona. Bastará con colocar la fecha de nacimiento de la persona y el código hará el resto:
<?php
class Age
{
var $age = '';
function calculateAge($iTimestamp)
{
$iDiffYear = date('Y') - date('Y', $iTimestamp);
$iDiffMonth = date('n') - date('n', $iTimestamp);
$iDiffDay = date('j') - date('j', $iTimestamp);
// If birthday has not happen yet for this year, subtract 1.
if ($iDiffMonth < 0 || ($iDiffMonth == 0 && $iDiffDay < 0))
{
$iDiffYear--;
}
$this->age = $iDiffYear;
}
function getAge()
{
return $this->age;
}
function get_rank($rank)
{
$last = substr( $rank, -1 );
$seclast = substr( $rank, -2, -1 );
if( $last > 3 || $last == 0 ) $ext = 'th';
else if( $last == 3 ) $ext = 'rd';
else if( $last == 2 ) $ext = 'nd';
else $ext = 'st';
if( $last == 1 && $seclast == 1) $ext = 'th';
if( $last == 2 && $seclast == 1) $ext = 'th';
if( $last == 3 && $seclast == 1) $ext = 'th';
return $rank.$ext;
}
}
$dob = '1983-09-27'; // fecha de nacimiento
$dob2 = explode("-",$dob);
$dob_hour = 18; // 24 hour format
$dob_min = 41;
$dob_sec = 0;
$d = getdate(); // Current date
$year=$d['year'];
$mon=$d['mon'];
$mday=$d['mday'];
$hour = $d['hours'];
$min = $d['minutes'];
$sec = $d['seconds'];
$d1=mktime($dob_hour,$dob_min,$dob_sec,$dob2[1],$dob2[2],$dob2[0]);
$d2=mktime($hour,$min,$sec,$mon,$mday,$year);
$obj = new Age;
$obj->calculateAge(mktime($dob_hour,$dob_min,$dob_sec,$dob2[1],$dob2[2],$dob2[0]));
$age = $obj->getAge();
$rank = $obj->get_rank($age+1);
echo 'Tu edad: '.$age;
echo '<br><br>';
echo '<b>Tu has vivido:</b> <br><br>';
echo "Años: ".floor(($d2-$d1)/31536000) . "<br>";
echo "Meses: ".floor(($d2-$d1)/2628000) . "<br>";
echo "Semanas: ".floor(($d2-$d1)/604800) . "<br>";
echo "Dias: ".floor(($d2-$d1)/86400) . "<br><br>";
echo "Horas: ".floor(($d2-$d1)/3600) . "<br>";
echo "Minutos: ".floor(($d2-$d1)/60) . "<br>";
echo "Segundos: " .($d2-$d1). "<br><br>";
?>
Espero les sea útil como me lo ha sido a mi.