0

生年月日から計算されたユーザーの正確な年齢を特定しようとしています。

彼らが今年の 1/2 であるかどうかを判断できる必要があります。

例:

  • 1983 年 8 月 17 日 -> 29 1/2
  • 1983/05/21 -> 30

年齢計算関数に現在使用しているものは次のとおりです。

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

ありがとう!

4

2 に答える 2

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.5そして29 1/2

デモ: http://phpfiddle.org/main/code/m7c-uck

于 2013-07-13T17:24:07.287 に答える
2

間隔の m 部分をテストできるようです。

if ($interval->m >= 6 ) {
    // it's $age + 1/2
}
于 2013-07-13T17:20:55.430 に答える