Webシステムにおいて、ユーザーの誕生日から計算して年齢を表示したり、その年齢を元に一定年齢のユーザーにのみ特定のコンテンツを表示したい場合など様々なシーンで年齢を活用する機会は多いです。
この記事ではPHPで誕生日から年齢を計算する方法を紹介したいと思います。
目次
誕生日から年齢を計算する式
今日現在において、誕生日から年齢を計算する数式があります。
(現在の日付 - 誕生日) / 10000
現在の日付から誕生日を引いた値を10000で割ることでその整数部分が年齢となります。
誕生日から年齢を計算する
それでは実際にPHPで誕生日から年齢を計算してみましょう。
<?php
// 現在日付
$now = date('Ymd');
// 誕生日
$birthday = "1990-07-01";
$birthday = str_replace("-", "", $birthday);
// 年齢
$age = floor(($now - $birthday) / 10000);
echo $age . '歳';
1つずつ解説していきます。
現在の日付を取得
date
関数を使うことで現在の日付を取得することができます。
また、引数にフォーマット文字列を指定することで、現在の日付を取得する際のフォーマットを指定することができます。Ymd
を指定した際には下記のような日付の文字列を取得することができます。
$now = date('Ymd');
echo $now;
// 結果
20210622
年月日の数字の羅列の文字列を取得することが出来ているのが、確認できます。
誕生日の加工
リクエストなどで取得した誕生日を現在の日付と同じフォーマットに変換していきます。
今回、誕生日はプログラムの中で直打ちしています。
$birthday = "1990-07-01";
$birthday = str_replace("-", "", $birthday);
echo $birthday;
// 結果
19900701
str_replace
関数を用いて、誕生日の文字列からハイフン(-
)を取り除く処理を行っています。
年齢を計算する
最後に取得した現在の日付と加工した誕生日を用いて、年齢を計算する式に当てはめて年齢を算出します。
$age = floor(($now - $birthday) / 10000);
echo $age . '歳';
// 結果
30歳
前述した計算式から年齢を小数点を含んで取得できてしまうため、floor
関数で小数点を切り捨てることで、整数部分の年齢の身を取得するようにしています。
まとめ
PHPで誕生日から年齢を計算する方法を紹介してきましたが、いかがだったでしょうか?
思ったよりも簡単だったかと思います。ぜひ、ご自身のWebアプリを作る際にも活用してみてくださいね。