PHP计算年龄

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

我一直在使用以下功能,该功能在几个月内都可以正常工作,直到某种故障导致while循环永远不会结束并且使整个站点陷入瘫痪。由于每天有近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;

编辑:此函数的某些时间似乎可以正常工作,但对于14年9月14日的DOB返回“ 40”

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

回答:

这很好。

<?php

//date in mm/dd/yyyy format; or it can be in other formats as well

$birthDate = "12/17/1983";

//explode the date to get month, day and year

$birthDate = explode("/", $birthDate);

//get age from date or birthdate

$age = (date("md", date("U", mktime(0, 0, 0, $birthDate[0], $birthDate[1], $birthDate[2]))) > date("md")

? ((date("Y") - $birthDate[2]) - 1)

: (date("Y") - $birthDate[2]));

echo "Age is:" . $age;

?>

以上是 PHP计算年龄 的全部内容, 来源链接: utcz.com/qa/417748.html

回到顶部