PHP сравнить даты в регистрационной форме - PullRequest
0 голосов
/ 18 мая 2011

У меня есть форма регистрации, в которой мне нужно подтвердить, что пользователю больше 18 лет (пользователь заполняет свою дату рождения, выбирая значения из 3 выпадающих меню: день, месяц, год).Какой лучший способ сделать это?Я пытаюсь использовать mktime и вычитать дату рождения из текущей даты, но не могу сделать это правильно.

Ответы [ 2 ]

3 голосов
/ 18 мая 2011

Я бы использовал 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
}

Работа с датами обычно проблематична из-за крайних случаев, поэтому я считаю, что лучше оставить ее библиотекам, разработанным и разработанным людьми, которые рассматривали крайние случаи.

0 голосов
/ 18 мая 2011
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%y');

Приведенный выше код возвращает результат в годах, вы можете проверить с годами в условном цикле, чтобы позволить пользователям для регистрации ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...