PHP计算年龄

PHP计算年龄

我正在寻找一种方法来计算一个人的年龄,考虑到他们的道布的格式为dd/mm/yyy。

我使用了以下功能,它工作了几个月,直到一些小故障导致When循环永不结束,整个站点都会停止运行。由于每天有将近100,000个DOB在执行这个功能,所以很难确定是什么导致了这种情况。

有没有人有更可靠的方法来计算年龄?

//replace / with - so strtotime works$dob = strtotime(str_replace("/","-",$birthdayDate));       
$tdate = time();$age = 0;while( $tdate > $dob = strtotime('+1 year', $dob)){
    ++$age;}return $age;

编辑:这个函数在某些时候似乎可以工作,但是返回“40”表示道布在1986年9月14日。

return floor((time() - strtotime($birthdayDate))/31556926);


猛跑小猪
浏览 369回答 3
3回答

慕哥6287543

$tz  = new DateTimeZone('Europe/Brussels');$age = DateTime::createFromFormat('d/m/Y', '12/02/1973', $tz)      ->diff(new DateTime('now', $tz))      ->y;从PHP5.3.0开始,您可以使用方便的DateTime::createFromFormat确保你的约会对象不会被误认为m/d/Y格式和DateInterval类(VIA)DateTime::diff)获取从现在到目标日期之间的年数

慕桂英546537

$date = new DateTime($bithdayDate);  $now = new DateTime();  $interval = $now->diff($date);  return $interval->y;
打开App,查看更多内容
随时随地看视频慕课网APP