Re: Age from date field?

From: Date: Sun, 12 Oct 2003 22:21:29 +0000
Subject: Re: Age from date field?
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-165923@lists.php.net to get a copy of this message
On Sun, Oct 12, 2003 at 02:49:53PM +0000, Curt Zirzow wrote: : * Thus wrote Eugene Lee (list-php-1@fsck.net): : > On Sun, Oct 12, 2003 at 02:09:38AM +0200, DvDmanDT wrote: : > : : > : Does anyone have a good solution on how to get the age of someone from a : > : date column in mysql... This is what I have, but it's not really the : > : truth... What's the right way to do it? : > : : > : floor((time()-$a["born"])/(3600*24*365.25)) : > : : > : where $a["born"] is the timestamp of the birthdate... Current query: : > : > This should work for well-formed timestamps, i.e. they are not in the : > future: : > : > function age($ts) : > { : > list($y1, $m1, $d1) = explode(' ', date('Y m d', $ts)); : > list($y2, $m2, $d2) = explode(' ', date('Y m d', time())); : > $age = $y2 - $y1 - ((($m2 < $m1) || ($d2 < $d1)) ? 1 : 0); : : What happens if the month is the same but the day hasnt been : reached? : : Shouldnt this be: : $age = $y2 - $y1 - ((($m2 < $m1) || ($m2 == $m1 && $d2 < $d1)) ? 1 : 0); : : To account for it being the same month but not yet the day. You're right. I got lost trying to short-circuit the expression and forgot to explicitly test for same month. :-)

« previous php.general (#165923) next »