ты можешь помочь мне с этим?
Я создаю планировщик событий, и у меня есть функция, которая состоит из часового диапазона. Например, у меня есть событие BIRTHDAY, и оно начинается с 13:15:00 до 18:30:00. Теперь, как я могу посчитать часы в этом диапазоне?
У меня есть такой код:
<?php
$start = "13:15:00";
$end = "18:30:00";
$time = strtotime($start);
$timeStop = strtotime($end);
//how can I count the hours inside?
?>
Вы могли бы использовать gmdate()
в этом случае:
$time = gmdate('H:i:s', $timeStop - $time); // feed seconds
echo $time;
Или с DateTime
Класс также:
$time = new DateTime($start);
$timeStop = new DateTime($end);
$diff = $timeStop->diff($time);
echo $diff->format('%h:%i'); // hours minutes
<?php
$start = "13:15:00";
$end = "18:30:00";
$time = strtotime($start);
$timeStop = strtotime($end);
//To count hours in the range
$diff = intval(($timeStop - $time)/3600);
//3600 refers to 1 hour
?>
Таким образом, вы берете разницу между двумя временными метками и делите на 3600 секунд, чтобы получить количество часов. intval
это получить целочисленное значение. Вы можете свободно использовать round
, ceil
или же floor
,