Memo

メモ > 技術 > プログラミング言語: PHP > 誕生日から年齢を計算

■誕生日から年齢を計算
<?php // 誕生日 $birthday = array( 'year' => 2000, 'month' => 4, 'day' => 10, ); // 西暦から和暦を取得 list($wareki, $year) = get_wareki($birthday['year'], $birthday['month'], $birthday['day']); // 誕生日から満年齢を取得 $age = get_age($birthday['year'], $birthday['month'], $birthday['day']); // 誕生日から数え年を取得 $kazoedoshi = get_kazoedoshi($birthday['year']); // 結果を表示 echo '<p>誕生日は' , $wareki . $year . '年' . $birthday['month'] . '月' . $birthday['day'] . '日です。</p>'; echo '<p>満年齢は' , $age . '歳です。満年齢は履歴書、パスポート、行政に提出する書類などに使用されます。</p>'; echo '<p>数え年は' , $kazoedoshi . '歳です。数え年は七五三、長寿祝い、厄年などに使用されます。</p>'; exit; /* * 西暦から和暦を取得 */ function get_wareki($year, $month, $day) { $date = sprintf('%04d%02d%02d', $year, $month, $day); if ($date >= 20190501) { $wareki = '令和'; $year -= 2018; } elseif ($date >= 19890108) { $wareki = '平成'; $year -= 1988; } elseif ($date >= 19261225) { $wareki = '昭和'; $year -= 1925; } elseif ($date >= 19120730) { $wareki = '大正'; $year -= 1911; } elseif ($date >= 18680125) { $wareki = '明治'; $year -= 1867; } else { $wareki = ''; } return array($wareki, $year); } /* * 誕生日から満年齢を取得 */ function get_age($birth_year, $birth_month, $birth_day, $today = null) { $birthday = sprintf('%04d%02d%02d', $birth_year, $birth_month, $birth_day); if (!preg_match('/^\d{8}$/', $today)) { $today = date('Ymd'); } return intval(($today - $birthday) / 10000); } /* * 誕生年から数え年を取得 */ function get_kazoedoshi($birth_year, $this_year = null) { if (!preg_match('/^\d{4}$/', $this_year)) { $this_year = date('Y'); } return $this_year - $birth_year + 1; }

Advertisement