0

このコードを使用して、ユーザーの誕生日を計算しています。

            <?php
            $birthDate = $bday."/".$bmonth."/".$byear;
            $birthDate = explode("/", $birthDate);
            $age = (date("md", date("U", mktime(0, 0, 0, $birthDate[0], $birthDate[1], 
            $birthDate[2]))) > date("md") ? ((date("Y")-$birthDate[2])-1):(date("Y")-$birthDate[2]));
            echo $age;
            ?>

入力が任意の年の任意の月の 23 日または 24 日 (たとえば、1987 年 2 月 23 日) の場合、年齢は -1 年ずれます。26 歳ではなく 25 歳と表示されます。これを 80 年代後半について毎月テストしました。常に 23 日と 24 日です。

誰でもこれを修正するのを手伝ってもらえますか?

4

2 に答える 2

3
<?php
$birth = new DateTime("$byear-$bmonth-$bday"); 
$today = new DateTime('today'); 
echo $birth->diff($today)->format('%y');
?>
于 2013-10-20T00:10:11.333 に答える