В PHP существует функция strtotime
, которая преобразовывает указанную дату в метку времени Unix (дата в секундах). Именно она и поможет нам решить обе поставленные задачи.
$you_date = "23.03.1990"; // Ваша дата
$now_date = date("d.m.Y"); // Текущая дата
$you_date_unix = strtotime($you_date);
$now_date_unix = strtotime($now_date);
$result = ($now_date_unix-$you_date_unix) / (60*60*24*365); // Рассчитываем года
$years = floor($result); // Округляем результат до целого числа
if($years < 18) {
die("Извините, но доступ к этому разделу ограничен, так как вам нет 18 лет");
}
В этом примере мы получаем количество лет в разнице этих дат. Важным нюансом здесь является то, что обе даты должны быть в одном формате.
Здесь мы с помощью той же функции strtotime
переведем обе даты в Unix, после чего сравним их как обычные числа.
$you_date = "23.03.1990"; // Ваша дата
$now_date = date('d.m.Y'); // Текущая дата
$you_date_unix = strtotime($you_date);
$now_date_unix = strtotime($now_date);
if($now_date_unix > $you_date_unix) {
echo "Сегодняшняя дата больше указанной";
} else {
echo "Указанная дата больше сегодняшней";
}
Здесь также важно отметить то, что обе даты должны быть в одном формате.
Как прибавить или вычесть минуту, час, день, неделю или другую временную единицу к дате на PHP
На вашем сайте регистрируется человек, и вам необходимо предоставить ему премиум-аккаунт, например, на 1 день.
Вы знаете точную дату его регистрации, а это значит, что вам не составит труда сосчитать, до какого времени будет действовать его премиум-аккаунт.
В качестве инструмента для достижения цели мы будем использовать уже знакомую нам функцию strtotime
.
header("Content-Type: text/html; charset=utf-8");
$reg_date = "26.09.2017 20:24:00"; // Дата регистрации
$premium_date = date("d.m.Y H:i:s", strtotime("+1 days", strtotime($reg_date)));
echo "Дата окончания премиум аккаунта: ".$premium_date;
Где +1 days
– соответственно, +1 день (если нужно вычесть значение – ставите знак «минус»).
Помимо этого, «days» может быть заменен следующими значениями: