端くれプログラマの備忘録 PHP [PHP] 誕生日から満年齢を得る

[PHP] 誕生日から満年齢を得る

ユーザの満年齢をチェックしたいときがある。

たとえば18禁のエロサイトとか、成人していることが条件の通販サイトとか。ユーザに誕生日を入力させて、現時点の満年齢をチェックしたい。

今日と誕生日の2つのDateTimeオブジェクトを作成して、その差を年単位で取得すれば満年齢が得られる。

// 誕生日をセット
$year = 1990;
$month = 4;
$day = 1;

$today = new DateTime('NOW');
$birthday = new DateTime("{$year}-{$month}-{$day}");
$diff = $today->diff($birth);
if ($diff->y < 18) {
    // 18歳未満
} else {
    // 18歳以上
}

参考サイト

PHP: DateTime – Manual
http://php.net/manual/ja/class.datetime.php