Firstly, 8:21:00
will be interpreted as 8AM unless you specified otherwise using DateTime::createFromFormat()
.
To work out time differences, use DateTime::diff()
:
$to = new DateTime("2008-12-13 10:42:00");
$from = new DateTime("2008-12-14 8:21:00");
$stat = $to->diff($from); // DateInterval object
echo $stat->format('%Hh:%Im');
This will display the hour/minute difference between the two times, but only up to 24 hours.
If you need more than 24 hours, you should do the following:
$hours = $stat->days * 24 + $stat->h;
$minutes = $stat->i;
printf('%02sh:%sm', $hours, $minutes);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…