Ho bisogno di calcolare l'età di una persona partendo dalla sua data di nascita. Chi mi può aiutare!!!
Grazie!!![]()
Ho bisogno di calcolare l'età di una persona partendo dalla sua data di nascita. Chi mi può aiutare!!!
Grazie!!![]()
$years = date("Y") - $born;
con $born che indica solo l'anno...
se ne vuoi uno più preciso...
$time = mktime(0,0,0,$month,$day,$year);
$years = floor((time() - $time)/31536000);
$month il mese,$day il giorno e $year l'anno
visitate http://camicio.altervista.org per caxxate varie :d
Grazie
Comunque anche il secondo metodo sembra non essere preciso, penso per colpa degli anni bisestili, si perde sempre qualche giorno!
:master:
usa il primo, tanto quando calcoli l'eta dlle person mica calcoli anche i giorni...
Il mio sito: CIONCO.ALTERVISTA.ORG
Lloyd Bank$
I roll with the gangstas don't get fly with your mouth
The wrong punchline'll have niggas inside of your house
bhe..
se uno è del febbraio 1990
e ora siamo nel gennaio 2004
avrebbe 14 anni col primo metodo.. mentre ne ha 13
il 31536000 è basato su un anno con 365 giorni...
visitate http://camicio.altervista.org per caxxate varie :d
Questa l'ho copiata da un post qualche tempo fa postata da piero.mac mi pare.
Non serve il database, basta la connessione a mysql.Codice PHP:
function EtaByMysql($data) {
$link = mysql_connect();
list($giorno, $mese, $anno) = explode('/',$data);
$res1= mysql_query("select DATE_SUB(CURDATE(), INTERVAL '$giorno' DAY) as day");
$new = mysql_result($res1,0,"day");
$res2= mysql_query("select DATE_SUB('$new', INTERVAL '$anno-$mese' YEAR_MONTH) as new_data");
list($anno, $mese, $giorno) = explode('-', mysql_result($res2,0,'new_data'));
$anno = $anno * 1; // per eliminare gli zero davanti al numero
if ($giorno >= 30 ) { $mese = $mese + 1; $giorno = 0 ; }
if ($mese >= 12) { $anno = $anno + 1; $mese = 0 ; }
echo "data nascita $data
";
echo "Anni $anno, Mesi $mese, Giorni " .$giorno*1;
}
EtaByMysql('21/07/1964');
?>
![]()
Ma scusa... facciamo il mio caso
<?
$oggi=time();
//5 febbraio 1987 alle 09:30:00
$nascita=mktime(09,30,00,2,5,1987);
$diff=$oggi-$nascita;
$data=date("Y",$diff);
?>
ti mostra gli anni compiuti (mod), poi la data te la formatti come ti pare...
Integro:
nel mio script c'è un errore, riferisciti a questo:
alla data formattata con Y, devi togliere ancora 1970 anni...
ma non credo che reagisca come tu voglia![]()
Non ho detto nulla, ma mktime funge solo dal 1970 in poi. Non è certo l'ideale per calcolare l'età/compleanno.Originariamente inviato da Dennis
Integro:
nel mio script c'è un errore, riferisciti a questo:
alla data formattata con Y, devi togliere ancora 1970 anni...
ma non credo che reagisca come tu voglia![]()
![]()
codice:function compleanno($temp){ $temp=explode("/",$temp); $oggi=explode("/",date("d/m/Y")); if ($oggi[1] > $temp[1]) return $oggi[2] - $temp[2]; elseif ($oggi[1] >= $temp[1] && $oggi[0] >= $temp[0]) return $oggi[2] - $temp[2]; else return $oggi[2] - $temp[2] - 1; } echo compleanno("25/12/1950");
think simple think ringo