PHP計(jì)算年齡我正在尋找一種方法來(lái)計(jì)算一個(gè)人的年齡,考慮到他們的道布的格式為dd/mm/yyy。我使用了以下功能,它工作了幾個(gè)月,直到一些小故障導(dǎo)致When循環(huán)永不結(jié)束,整個(gè)站點(diǎn)都會(huì)停止運(yùn)行。由于每天有將近100,000個(gè)DOB在執(zhí)行這個(gè)功能,所以很難確定是什么導(dǎo)致了這種情況。有沒(méi)有人有更可靠的方法來(lái)計(jì)算年齡?//replace / with - so strtotime works$dob = strtotime(str_replace("/","-",$birthdayDate));
$tdate = time();$age = 0;while( $tdate > $dob = strtotime('+1 year', $dob)){
++$age;}return $age;編輯:這個(gè)函數(shù)在某些時(shí)候似乎可以工作,但是返回“40”表示道布在1986年9月14日。return floor((time() - strtotime($birthdayDate))/31556926);
3 回答

慕哥6287543
TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊
$tz = new DateTimeZone('Europe/Brussels');$age = DateTime::createFromFormat('d/m/Y', '12/02/1973', $tz) ->diff(new DateTime('now', $tz)) ->y;
DateTime::createFromFormat
m/d/Y
DateInterval
DateTime::diff

慕桂英546537
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊
$date = new DateTime($bithdayDate); $now = new DateTime(); $interval = $now->diff($date); return $interval->y;
- 3 回答
- 0 關(guān)注
- 418 瀏覽
添加回答
舉報(bào)
0/150
提交
取消