Прежде всего, вы не можете использовать метку времени для хранения дней рождения, потому что метка времени начинает отсчитываться с 1970 года, и в мире существует несколько человек в возрасте старше 40 лет, поэтому вместо этого используется дата (не дата и время, потому что вам не нужно хранить время, простодата рождения)
вы можете получить дату от пользователя через простое текстовое поле, но вы должны уведомить его о предполагаемом формате даты (д / м / у, м / д / у, ...) 2/ 4/2011 может означать 4 февраля 2011 года или 2 апреля 2011 года
после того, как вы знаете, что вы, кроме проверки входных данных с помощью регулярного выражения
, например, $ _POST ['birthday'] = '03.11.2011 'и мы кроме формата м / д / у
$birthday = $_POST['birthday'];
if(preg_match('/^(\d){1,2}\/(\d){1,2}\/(\d){4}$/',$birthday)){
list($month,$day,$year) = explode('/',$birthday);
// here you should check that $day isn't bigger then days_in_month($month), and $month is between 1-12
if(date('Y')-$year<18){ // you need to take into account $month to be more strict
// user under 18
}
}
надеемся, что это помогло