gpt4 book ai didi

PHP 准确计算给定 DOB 的最近年龄

转载 作者:搜寻专家 更新时间:2023-10-31 21:16:37 24 4
gpt4 key购买 nike

我正在尝试根据 DOB 计算最接近的年龄,但我不知道该怎么做。我尝试了一些估计的方法,但这还不够好。我们需要计算从今天到下一个生日的天数,不管是在当年还是明年。并再次计算从今天到最后一个生日的天数,无论是在当年还是去年。

有什么建议吗?

最佳答案

我想这就是你想要的......当然,你可以让一个人的年龄准确到当天并将其向上或向下舍入到最接近的年份......这可能是我应该拥有的完成。

这是相当蛮力的,所以我相信你可以做得更好,但它所做的是检查到今年、明年和去年生日的天数(我分别检查了这三个而不是从 365 中减去,因为 date() 处理闰年,而我不想这样做)。然后它根据这些生日中最接近的一个计算年龄。

Working example

<?php
$bday = "September 3, 1990";
// Output is 21 on 2011-08-27 for 1990-09-03

// Check the times until this, next, and last year's bdays
$time_until = strtotime(date('M j', strtotime($bday))) - time();
$this_year = abs($time_until);

$time_until = strtotime(date('M j', strtotime($bday)).' +1 year') - time();
$next_year = abs($time_until);

$time_until = strtotime(date('M j', strtotime($bday)).' -1 year') - time();
$last_year = abs($time_until);

$years = array($this_year, $next_year, $last_year);

// Calculate age based on closest bday
if (min($years) == $this_year) {
$age = date('Y', time()) - date('Y', strtotime($bday));
}
if (min($years) == $next_year) {
$age = date('Y', strtotime('+1 year')) - date('Y', strtotime($bday));
}
if (min($years) == $last_year) {
$age = date('Y', strtotime('-1 year')) - date('Y', strtotime($bday));
}

echo "You are $age years old.";
?>

编辑:删除了 $time_until 计算中不必要的 date()

关于PHP 准确计算给定 DOB 的最近年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7218388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com