I know how to subtract between two time values, but the problem is appeared in some positions.
I use this code:
$startTime = new DateTime(‘22:00:00’);
$endTime = new DateTime('00:30:00 ');
$duration = $startTime->diff($endTime); //$duration is a DateInterval object
It is good in some positions, but for the mentioned case I expect to show “02:30” instead of “21:30”
How to solve it.
Thanks in advance.
You need to include the dates in your
DateTime declarations. The
diff in your code is finding the difference between 00:30 today and 22:30 today, which is the answer you’re getting: 21:30.
If you were to get the difference between 22:30 today and 00:30 tomorrow, that would be 02:30:
$startTime = new DateTime('2020-06-05 22:00:00'); $endTime = new DateTime('2020-06-06 00:30:00'); $duration = $startTime->diff($endTime); echo $duration->format("%H:%I:%S"); // 02:30:00