training-web.ruГлавнаяКатегорииО насКарта сайтаПоискТёмная тема

Категории

Как сравнить две даты по параметру PHP

Создано: 26 декабря 2015Автор: Егор Астапов2203 просмотраСложность: легкий

Как сравнить две даты по параметру 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.

Комментарии

реклама