使用 $date->diff 在 php 中计算年龄返回错误值



我计算一个人的年龄如下-

$dob = new DateTime('01-03-2004', new DateTimeZone("Asia/Dhaka"));
$to = new DateTime("28-02-2022", new DateTimeZone("Asia/Dhaka"));
$interval = $dob->diff($to);

它返回17年11个月29天。

但是calculator.net显示17年11个月27天。

php中还有其他计算年龄的技术吗?

差异是由于您所在的时区。尝试使用这个:

$dob = new DateTime('01-03-2004');
$to = new DateTime("28-02-2022");
$interval = $dob->diff($to);

如果没有指定时区,它会给你你想要的结果。

输出:

DateInterval {#721 ▼
interval: + 17y 11m 27d
+"y": 17
+"m": 11
+"d": 27
+"h": 0
+"i": 0
+"s": 0
+"f": 0.0
+"weekday": 0
+"weekday_behavior": 0
+"first_last_day_of": 0
+"invert": 0
+"days": 6573
+"special_type": 0
+"special_amount": 0
+"have_weekday_relative": 0
+"have_special_relative": 0
}

最新更新