Re: subtracting dates...

From: Date: Sun, 03 Aug 2003 00:18:25 +0000
Subject: Re: subtracting dates...
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-158062@lists.php.net to get a copy of this message
yeah, thats the code i wrote myself (nearly). it gets the job done. thanks "Curt Zirzow" <curt@zirzow.dyndns.org> wrote in message news:20030802231807.GH21938@bagend.shire... > * Thus wrote John Ryan (celticfc@iol.ie): > > Hi, > > > hello ryan, > > > In mySQL, I store dates as YYYY-MM-DD, a standard DATE type. It stores users > > date of births. I need to calculate in a PHP script, the users age from this > > DOB. I get a PHP date in the same format as the mySQL and subtract, which > > returns the year rounded off. ie, it doesnt matter if your birthdays in june > > of 1983 and the date is januray 2003, your age is still returned as 20, when > > it should be 19. > > > > Does anyone know how can i get the right age? > > To get a real age of someone you would use seconds, but since the actual > count of seconds get messed up on leap years (through the convertion > from seconds to years), I approached it with the method most people > calculate ages. > > Most people first look at the year and find the differnce, then if > the month/day hasn't come around you subtract one; alas the common > calculation for age. > > Here is the code to demonstrate that logic: > > > $dob = split('-', '1980-12-1'); > $now = split('-', date('Y-m-d')); > > // we are either this age or one less > $age = $now[0] - $dob[0]; > > // have we gotten to the month of in dob? > if ($now[1] < $dob[1]) { > > // no, so we are technically a year less. > $age--; > > // If we're in the month, has the day come yet? > } elseif ($now[1] = $dob[1] && $now[2] < $now[3]) { > > // no, still a few more days. > $age--; > } > > // your age is proper, in day to day usage. > > /* > Note: > > instead of the if () elseif() you can use > if (mktime(0,0,0,$now[1],$now[2]) < mktime(0,0,0,$dob[1],$dob[2])) { > $age--; > } > > */ > > > HTH, > > Curt > -- > "I used to think I was indecisive, but now I'm not so sure."

« previous php.general (#158062) next »