Как вычитать и сравнивать даты в PHP?
Предположим, что на вашем сайте стоит ограничение на возраст посетителя. Человек вводит дату рождения, и вам необходимо проверить, сколько же человеку лет относительно текущего дня, и в последующем выполнить какое-то действие.
В PHP существует функция «strtotime», которая преобразовывает указанную дату в метку времени Unix (дата в секундах). Именно она и поможет нам решить обе поставленные задачи.
Вычитание дат в PHP
Как я и говорил ранее – мы воспользуемся функцией «strtotime», применим ее к каждой дате и произведем необходимые операции.
Реализация:
<?php
$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 лет");
}
?>
Таким образом, мы получаем количество лет в разнице этих дат.
Важным нюансом здесь является то, что обе даты должны быть в одном формате.
Сравнение дат в PHP
Здесь мы с помощью той же функции «strtotime» переведем обе даты в Unix, после чего сравним их как обычные числа.
<?php
$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 "Указанная дата больше сегодняшней";
}
?>
Здесь также важно отметить то, что обе даты должны быть в одном формате.