Я пытаюсь рассчитать время между двумя разными временами и вывести их в часах. Клиенту будет показано, сколько времени займет услуга.
Вот мой код:
$datetime1 = new DateTime($timeFROM);
$datetime2 = new DateTime($timeTO);
$interval = $datetime2->diff($datetime1);
$hour_decimal = number_format(intval($interval->format('%H')) + round(intval($interval->format('%I')) / 60, 2), 2, '.','');
echo $hour_decimal;
Код отлично работает для классических заданий, но для ночной работы он усложняется, потому что если значение второго раза ($timeTO
) после 00:00, оно вычисляется от $timeTO
до $timeFROM
вместо $timeFROM
до $timeTO
.
Пример:
$timeFROM = "6:00";
$timeTO = "8:00";
выход = 2,00
Это было бы правильно.
Пример 2:
$timeFROM = "23:30";
$timeTO = "1:00";
output = 22.50 И это неправильно. Должно быть 1,50
Похоже, мне нужно заставить функцию всегда вычислять от $timeFROM
до $timeTO
, а не наоборот, независимо от того, какое значение больше.
Есть идеи? Не могу найти что-нибудь в Google, а также не знал, как спросить Google для этого точно. Извините, когда решение может быть очень простым!
Привет