2015-12-31 2 views
2

У меня есть следующий код:Как узнать, что такое длительность date_diff?

$sStart = date('Y-m-d H:i:s', strtotime($row['sStart'])); 
$sEnd = date('Y-m-d H:i:s', strtotime($row['sEnd'])); 

$sStartDate = new DateTime($sStart); 
$sEndDate = new DateTime($sEnd); 

$diff = date_diff($sStartDate, $sEndDate, true); 

$dur = $diff->format('%h:%i'); 

$row['sStart'] и $row['sEnd'] являются datetime s из базы данных MySQL.

Как я могу узнать, является ли $diff более 24 часов?

+0

Проверьте примеры в [PHP Manual] (http://php.net/manual/en/datetime.diff.ph p) – RiggsFolly

+0

вы можете использовать dateadd() –

ответ

3

$diff имеет тип DateInterval.

Я думаю, что это даст вам количество часов, используя результат date_diff:

$hours = ($diff->days * 24) + $diff->h; 

if ($hours > 24) { 
    // etc .. 
} 
1

С 24 часов 1 день, вы можете использовать модификатор %a к DateInterval::format вызова для вычисления числа дней интервал пересекает:

$sStartDate = DateTime::createFromFormat('Y-m-d H:i:s', '2013-05-13 21:56:00'); 
$sEndDate = DateTime::createFromFormat('Y-m-d H:i:s', '2013-05-14 21:56:01'); 

$diff = date_diff($sStartDate, $sEndDate, true); 

$days = $diff->format('%a'); 
if (1 <= $days) { 
    echo '24 hours or more.'; 
} else { 
    echo 'less than 24 hours.'; 
} 

See it live.

Смежные вопросы