ich glaube ich hab die lösung nach langem rumprobieren gefunden
PHP-Code:
for ($i_cnt = 0, $i_max = count($prices) - 1; $i_cnt <= $i_max; $i_cnt++) {
$current_time = $prices[$i_cnt]['time']; // time_to_hours entfernt
$next_time = $i_max > $i_cnt ? $prices[$i_cnt + 1]['time'] : 48.0;// time_to_hours entfernt
if ($start_time < $next_time && $end_time >= $current_time) {
$diff_time = $end_time < $next_time ? $end_time : $next_time;
$diff_time -= $start_time > $current_time ? $start_time : $current_time;
$sum += $prices[$i_cnt]['value'] * $diff_time;
}
}
zumindes kommt das richtige ergebnis zum vorschein.
werde es aber noch ein paar mal
prüfen.
danke an alle die geholfen haben.