Я бы использовал DateTime и сделал бы что-то вроде следующего:
<?php
$year = (int) $_POST['year'];
$month = (int) $_POST['month'];
$day = (int) $_POST['day'];
$now = new DateTime();
$dob = new DateTime("$year-$month-$day");
$age = (int) $now->diff($dob)->format("%y");
if ($age < 18) {
// Denied
}
Работа с датами обычно проблематична из-за крайних случаев, поэтому я считаю, что лучше оставить ее библиотекам, разработанным и разработанным людьми, которые рассматривали крайние случаи.