我需要得到一个人的年龄。如果婴儿<= 7天,则输出应在数天内完成。如果该人是> 2个月&lt; 1年的产量应该是几个月。
在这里我遇到了问题,有些月份是其他31个月或28天,所以我的解决方案并不准确。对于其他情况也存在同样的问题:我的尝试忽略了366天的年数,因此未正确计算年龄。
$timestamp = time();
$birthday_timestamp = mktime(0, 0, 0, $month, $day, $year);
$difference = $timestamp - $birthday_timestamp;
if ($difference < 1209600) return $output = ($difference / 86400)." days";
elseif ($difference < 5184000) return $output = ($difference / 86400 * 7). " weeks";
elseif ($difference < 31536000) return $output = ($difference / 86400 * 30). " months";
else return $output = ($difference / 86400 * 365). " years";
答案 0 :(得分:0)
请勿尝试自行计算日期和日期之间的差异。 PHP有一些非常好的类可以帮到你。
$now = new DateTime();
$birthDay = new DateTime('1985-05-24');
$diff = $birthDay->diff($now);
var_dump($diff);
这是安全的,并考虑到闰年和其他在计算日期时会发生的奇怪事情。
$diff
将是DateInterval
,其中包含$y
,$m
和$d
等属性。