Открыть мобильное меню

Перевести время в секунды и отнять время от времени в PHP, узнав временной промежуток

Часто нужно узнать разницу во времени и в PHP есть разные варианты, но в том случае когда время без даты и нужно просто узнать разницу во времени я сделал две функции.

Первая timeToSec переводит время, из строки типа "18:12:06", в секунды. В них легко проводить все дальнейшие вычисления.

Вторая функция timeToArr возвращает массив с часами, минутами и секундами.

Воспользовавшись данными функциями можно легко узнать временной промежуток, отняв одно время от другого.

function timeToSec($his) {
    $t = explode(':', $his);
    $h = $t[0] * 60 * 60;
    $i = $t[1] * 60;
    $s = $t[2];
    return $h + $i + $s;
}

function timeToArr($sec) {
    $h = floor($sec / 60 / 60);
    $sec = $sec - $h * 60 * 60;
    $i = floor($sec / 60);
    $sec = $sec - $i * 60;
    $s = floor($sec);
    return array($h, $i, $s);
}

$a = timeToSec('13:58:07');
$b = timeToSec('14:05:25');

$time = timeToArr($b - $a);

echo $time[0].' часов '.$time[1].' минут '.$time[2].' cекунд';
В результате получаем 438 секунд или 0 часов 7 минут 18 cекунд.