年齢計算 - PHPで日付・時刻の計算
目次
- PHPで日付・時刻の計算
- 日付・時刻に関する関数
- 年齢計算
- 今月のカレンダー
- 年月を指定できるカレンダー
- 予定表
- 予定表(単一ソース)
年齢計算
生年月日を引数として渡すと現在の年齢を返す関数を作成します。
関数本体
function calc_age($birth)
{
$ty = date("Y");
$tm = date("m");
$td = date("d");
list($by, $bm, $bd) = explode('-', $birth);
$age = $ty - $by;
if($tm * 100 + $td < $bm * 100 + $bd) $age--;
return $age;
}
使い方
int calc_age(string birth)
birth に「YYYY-MM-DD」(年-月-日)の形式で誕生日を渡すと、現在の年齢を戻り値として返します。
サンプル
print calc_age("1971-2-9");
2003年9月18日現在、32 と表示されます。
プログラムの解説
$ty = date("Y");
$tm = date("m");
$td = date("d");
現在の年を $ty、月を $tm、日を $td にセットします。
list($by, $bm, $bd) = explode('-', $birth);
引数の誕生日文字列を explode 関数によってハイフン区切りで分割し、年を $by、月を $bm、日を $bd にセットします。
$age = $ty - $by;
年齢が入る変数 $age に、仮に現在年から誕生年を引いたものをセットします。
if($tm * 100 + $td < $bm * 100 + $bd) $age--;
現在の月日が誕生月日よりも小さかったら年齢をひとつ減らします。これによって正確な年齢が算出できます。