[PHP] Convertire un orario in un numero decimale

  • Creatore Discussione Creatore Discussione sanzweb
  • Data di inizio Data di inizio

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
 
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.
 
PHP:
function time2float($time) {
    $ta = explode(":", $time);
    return $ta[0] + ($ta[1] / 60);
}

echo time2float("8:30");
 

Discussioni simili