Codice PHP:
//faccio la differenza di 2 fasce orarie
function differenza($ora1, $ora2, $sep){
$part = explode($sep, $ora1);
$arr = explode($sep, $ora2);
$diff= mktime($arr[0], $arr[1]) - mktime($part[0], $part[1]);
$ore=floor($diff / (60*60));
$minuti=($diff / 60) % 60;
$ore = str_pad($ore,2,0,STR_PAD_LEFT);
$minuti = str_pad($minuti,2,0,STR_PAD_LEFT);
$risultato = $ore.":".$minuti;
return $risultato;
}
function differenza2($ora3, $ora4, $sep2){
$part2 = explode($sep2, $ora3);
$arr2 = explode($sep2, $ora4);
$diff2= mktime($arr2[0], $arr2[1]) - mktime($part2[0], $part2[1]);
$ore2=floor($diff2 / (60*60));
$minuti2=($diff2 / 60) % 60;
$ore2 = str_pad($ore2,2,0,STR_PAD_LEFT);
$minuti2 = str_pad($minuti2,2,0,STR_PAD_LEFT);
$risultato2 = $ore2.":".$minuti2;
return $risultato2;
}
$ora1="08:00";
$ora2="09:00";
$ora3="10:00";
$ora4="11:20";
$differenza=differenza($ora1,$ora2,":");
$differenza2=differenza2($ora3,$ora4,":");
//sommo le differenze
function somma($differenza,$differenza2, $sep3){
$differenza = explode($sep3,$differenza);
$differenza2 = explode($sep3,$differenza2);
$ore3 = $differenza[0] + $differenza2[0];
$minuti3 = $differenza[1] + $differenza2[1];
if ($minuti3 > 59){
$minuti3 = $minuti3 - 60;
$ore3 +=1;
}
$ore3 = str_pad($ore3,2,0,STR_PAD_LEFT);
$minuti3 = str_pad($minuti3,2,0,STR_PAD_LEFT);
$risultato3 = $ore3.":".$minuti3;
return $risultato3;
}
$somma=somma($differenza,$differenza2,":");
echo "Somma- ".$somma;
Così è ottimo, ma come lo utilizzo nel seguente ciclo sommando tutti gli orari?
Codice PHP:
$query = "SELECT * FROM servizi WHERE $where data <= Now() and ente = '$IDUser_Admin'";
$result = mysql_query($query, $db);
while ($row = mysql_fetch_array($result)) {
$ora1 = $row["da"];
$ora2 = $row["a"];
$ora3 = $row["da2"];
$ora4 = $row["a2"];
}