Om du försöker dividera strängen "01:00:00" med strängen "00:30:00" så kommer PHP göra sitt bästa för att tolka dessa värden som tal. I detta fall blir det 1/0 och du får en varning om division med 0 (om du har ställt in så att varningar visas). Kvoten av denna division blir 0, och 0 * 100 är 0.
Du behöver göra om $teltid och $timmarna till sekunder för att kunna utföra beräkningar på dem. Om du delar 01:00:00 med 00:30:00 borde väl resultatet dessutom bli 200%? 00:30:00 dividerat med 01:00:00 blir däremot 50%.
För att göra om strängrepresentationen av tiderna till sekunder kan du till exempel göra så här:
<?php
function toSec($value) {
if (preg_match('/^(\d+):(\d+):(\d+)$/', $value, $matches)) {
$hours = $matches[1];
$minutes = $matches[2];
$seconds = $matches[3];
return ($hours * 60 * 60) + ($minutes * 60) + $seconds;
}
return false;
}
$teltid = "00:30:00";
$timmarna = "01:00:00";
$procent = toSec($teltid) / toSec($timmarna) * 100;
echo $procent;