从出生日期计算确切年龄(1/2)

时间:2013-07-13 17:15:35

标签: php date

我正在尝试确定用户的确切年龄,计算出他们的出生日期。

我需要能够判断他们当前是否是当年的1/2。

示例:

  • 08/17/1983 - > 29 1/2
  • 05/21/1983 - > 30

以下是我目前用于年龄计算功能的内容:

$birthday = new DateTime($birthday);
$interval = $birthday->diff(new DateTime);
$age = $interval->y;

谢谢!

2 个答案:

答案 0 :(得分:2)

好像你可以测试间隔的m部分。

if ($interval->m >= 6 ) {
    // it's $age + 1/2
}

答案 1 :(得分:2)

计算区间中的确切月份,然后除以6,截断,然后除以2.

/6 + truncate + /2/12类似,只有.0或.5。

<?php 

$birthday = new DateTime('08/17/1983');
$interval = $birthday->diff(new DateTime);
$age = floor((($interval->y * 12) + $interval->m) / 6) / 2;

//To display with floating point
echo $age;

echo '<br />';

//To display with "1/2"
echo floor($age) . (fmod($age, 1) == 0.5 ? ' 1/2' : '');

?>

结果:29.529 1/2

演示:http://phpfiddle.org/main/code/m7c-uck