[PHP] Convertire un orario in un numero decimale

sanzweb

Nuovo Utente
9 Lug 2019
4
0
1
Ciao A tutti del forum.

avrei la necessità di convertire un orario formattato 08:30 nel corrispondente numero 8,50 (quindi ore e mezzo)

Questo per poter sommare le ore lavorate da un dipendente in una tabella dove ho usato il plugin DataTables. La API che fa la somma di una colonna chiede dei numeri float in ingresso.

non ci sono orari strani tipo 08:43 ecc....ma solo mezze ore: 08:00 08:30 ecc...
La tabella la carico da un database

vi ringrazio anticipatamente per la vostra risposta.
Sanzweb
 

Tommy03

Utente Attivo
6 Giu 2018
101
9
18
16
Bassano del Grappa (VI)
Una possibile soluzione potrebbe essere usando la funzione substr:
PHP:
$orario =  ...; //orario in formato normale (es. 08:30)
$ore = substr($orario,0,2); //individua il numero di ore
$min = substr($orario,3,2); //individua il numero di minuti
if($min==30){
$risultato=$ore.",5";
}else{
$risultato=$ore;
}
echo $risultato; //se $orario è 08:30, dovrebbe restituire 08,5
Non sono sicuro, ma dovrebbe funzionare.
 

marino51

Utente Attivo
28 Feb 2013
2.711
140
63
Lombardia
PHP:
function time2float($time) {
    $ta = explode(":", $time);
    return $ta[0] + ($ta[1] / 60);
}

echo time2float("8:30");