【PHP】生年月日から年齢を自動算出する。プロフィール表示などで使える【備忘録】

【PHP】生年月日から年齢を自動算出する。プロフィール表示などで使える【備忘録】

サイトのプロフィールページなどで年齢を表示したい場合、毎年年齢を手動更新するのは面倒なので、PHPで生年月日から年齢を自動算出するコードの備忘録。

一番簡潔な書き方は下記だと思う。

$birthday = 19960501;
$age = floor((date(Ymd) - $birthday)/10000);

上記、ベタ書きのパターンだと、yyyymmdd形式で生年月日を入力。
例だと1996年5月1日生まれ。適当な変数(今回だと$birthday)に格納する。
最近は大体Wordpressを利用しているので、例えばプロフィールリスト等を作る際、カスタム投稿タイプのテンプレにカスタムフィールド等のプラグインを利用して値を読み込むようにして対応している。(それはまた別の記事で…)

更に、ここでは$ageという変数に、data(Ymd)で今日の日付を取得、当記事の投稿日だと20200520。そこから$birthdayに格納されている19960501を引く。

20200520 - 19960501 = 240019

と、上記の数字になります。この数字を10000で割る。

240019 ÷ 10000 = 24.0019

になり、floor関数で小数点以下を切り捨てているので

今日現在(2020年5月20日)、1996年5月1日生まれの方は24歳となる。

仮に、誕生日が1996年5月31日だった場合、今日現在(2020年5月20日)はまだ23歳になる。

20200520 - 19960531 = 239989

239989 ÷ 10000 = 23.9989

小数点以下切り捨てで、23歳と計算される。

テンプレートなど、表示させたいところに

<?php echo $age;?> 歳

と表示すれば、自動的に年齢を計算し表示できる。

関連記事Related article

記事月別アーカイブ