Как сравнить две даты по параметру PHP. Я покажу вам способ связанный с ООП. DateTime — это класс встроенный в PHP. Он имеет свои методы. Все методы описаны на странице Дата и Время. Мы создадим переменную $datetime1 при помощи конструктора new DateTime(). Далее создадим вторую переменную $datetime2 при помощи метода createFromFormat(). Далее очень интересный момент. Мы прибавляем к значению переменной $datetime2 8 дней. Это прибавление довольно интересно выглядит add(new DateInterval('P8D')). Благодаря методу (int)$interval->format('%a') вы получите число. Функция int преобразует строку в число. Далее идет простое сравнение при помощи условия if-else.
/*вычитание разницы из временных отрезков*/
function check($d){
$datetime1 = new DateTime();
$datetime2 = DateTime::createFromFormat('d.m.Y', $d);
$datetime2->add(new DateInterval('P8D'));
echo "now: ".$datetime1->format('d.m.Y')."==> +".$datetime2->format('d.m.Y');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R');
$num = (int)$interval->format('%a');
echo $num;
if($num > 8)
{
echo $num;
return FALSE;
}
else
{
echo $datetime2->format('d.m.Y')." == в диапазоне (0 < $num <= 8)";
return TRUE;
}
}
$d = '01.09.2015';
check($d);
Допусти вам нужно сравнить дату с текущим временем. Если разница между датами в 1 час, то будет TRUE.
// запуск скрипта производился в 12:50:00
function getStatusCreate($d)
{
$datetime2 = new DateTime();
$datetime1 = DateTime::createFromFormat('d.m.Y H:i:s', $d);
$interval = $datetime1->diff($datetime2);
$param = $interval->format('%h');
if($param > 1) return TRUE;
else return FALSE;
}
if(getStatusCreate('29.12.2016 10:00:00') == TRUE) echo 'дата < на 1 час';
else echo 'дата > 1 часа';
// вывод: дата < на 1 час
Хочу показать вам как определить разницу между двумя датами. Читайте статью разница сравнение времени PHP.