我计算一个人的年龄如下-
$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
}