2011-10-28 9 views

risposta

13
$hours = intval($totalMinutes/60); 
$minutes = $totalMinutes - ($hours * 60); 

Edited essere PHP

+1

@Jon Mi aspetterei che la maggior parte dei programmatori sia in grado di fare ciò ed essere in grado di fare ciò che vogliono fare con esso in qualunque lingua stiano lavorando. Hai ragione che non è PHP, ma la domanda è dare all'OP le informazioni di cui avrebbe bisogno per risolvere il problema? Penso che lo farebbe. – corsiKa

10

Questo tipo di conversione viene eseguita utilizzando la divisione integer e l'operatore modulo. Con divisione intera a trovare quanti dell'unità "grandi" che hai e con modulo a trovare quanti dell'unità "piccolo" sono rimasto:

define('MINUTES_PER_HOUR', 60); 

$total_minutes = 525; 
$hours = intval($total_minutes/MINUTES_PER_HOUR); // integer division 
$mins = $total_minutes % MINUTES_PER_HOUR;   // modulo 

printf("%d minutes is really %02d:%02d.\n", $total_minutes, $hours, $mins); 

See it in action.

+0

Solo per aggiungere a questa risposta. Il% è l'operatore modulo che fornisce il resto della divisione. Cioè 8% 5 = 3. – NickLH

+0

Wow ottima risposta, grazie e grazie ad altre persone con le risposte! – Valoda

2

floor(525/60) dà il numero di ore (8.75 arrotondato dal 8).

525 % 60 indica il numero di minuti (operatore modulo).

+0

525/60 restituirà 8,75 ma che dire di 75? ho ancora un'ora .. !! come possiamo aggiungere questo in ore? –

1

Quello che ho fatto per la mia ragazza ha fatto il suo grafico con intervalli di 60 minuti es. 1 = 60,2 = 120,3 = 180,4 = 240,5 = 300,6 = 360 ecc. Ecc. Allora le ho detto di prendi i minuti ad es. 337 trova il numero più vicino senza superare quello che sarebbe 5 poi usa il numero 5 uguale e sottrai dai minuti originali 337-300 = 37 il resto è i minuti quindi 337 minuti equivale a 5 ore e 37 minuti