Page 1 sur 1

PHP: Date en Decimal

Posté : 22 févr. 2013, 14:24
par SPykees
Premièrement bonjour et merci d'avance à ceux qui m'aideront. J'ai fouillé sur le web et j'ai trouvé des tonne de réponse, mais impossible de les comprendre. Je débute en php et malheureusement les réponse sont souvent donnée à des personnes plus expertes que mois :)

Voici ma question:

J’intègre dans une BDD des heures au format 00:00:00 celles-ci sont cumulée à mesur que la personne effectue des heures. Jusque la aucun souci. J'aimerais intégrer une "Paye" et pour cela j'ai besoin de calculé ces heure en décimal pour les multiplier par le prix de l'heure. exemple 1:35:00 = 1,35 que je multiplie par le prix de l'heure ensuite.

Je ne comprends pas comment obtenir ces décimal. Je précise que le format heure pourra facilement dépasser les 24h et afficher 356:30:00 par exemple 356,5 Heure

Voici le code que j'ai fait jusqu'ici :
if($query = "SELECT NbrPassengers, SUM(NbrPassengers)as Tpass, CargoWeight, SUM(CargoWeight) as Tcargo, totalfuel, SUM(totalfuel)as Tfuel, TotalBlockTime, SEC_TO_TIME(SUM(TotalBlockTime))as Theure, TotalBlockTimeNight, SEC_TO_TIME(SUM(TotalBlockTimeNight))as Tnheure, TotalAirbornTime, SEC_TO_TIME(SUM(TotalAirbornTime))as Tvol, TotalTimeOnGround, SEC_TO_TIME(SUM(TotalTimeOnGround)) as Tsol, TotalDistance, SUM(TotalDistance)as Tdist, BonusPoints, SUM(BonusPoints)as Tpoint, PenalityPoints, SUM(PenalityPoints)as Tpen  FROM flights WHERE PilotName='$plid'")
    $result=@mysql_query($query);if(!$result){echo "SQL Error - ".mysql_error();return;}
	$fetch = mysql_fetch_assoc($result);


echo 'Total passagers :'.$fetch['Tpass'].'<br>';
echo 'Total cargo :'.$fetch['Tcargo'].'<br>';
echo 'Total carburant:'.$fetch['Tfuel'].'<br>';
echo 'Total des heures de jours :'.$fetch['Theure'].'<br>';
echo 'Total des heures de nuits :'.$fetch['Tnheure'].'<br>';
echo 'Temps en vol :'.$fetch['Tvol'].'<br>';
echo 'Temps au sol :'.$fetch['Tsol'].'<br>';
echo 'Distance parcourue :'.$fetch['Tdist'].'<br>';
echo 'Total Pen. :'.$fetch['Tpen'].'<br>';
echo 'Total des points :'.$fetch['Tpoint'].'<br>';

//calcul des grades
if($fetch['Tvol'] < '50:00:00'){
	$paye = 20;
	$grade = 'Pilote';}
if($fetch['Tvol'] >= '100:00:00'){
	$paye = 100;
	$grade = 'Capitaine';}
if($fetch['Tvol'] >= '300:00:00'){
	$paye = 300;
	$grade = 'Commandant';}
if($fetch['Tvol'] >= '1000:00:00'){
	$paye = 500;
	$grade = 'Premier Officier';}

//convertion heure en decimal ?? pour l'intégrer dans $salaire ($salaire= $paye* ?? )

echo 'Vous etes au garde de : '.$grade.'<br>';
echo 'Votre portefeuille : '.$salaire.'Frs';

Un grand merci d'avance

Re: PHP: Date en Decimal

Posté : 22 févr. 2013, 14:27
par SPykees
Ho j'ai oublié de précisé que la variable à mutiplié est celle venant de
 SEC_TO_TIME(SUM(TotalAirbornTime))as Tvol
Merci encore

Re: PHP: Date en Decimal

Posté : 22 févr. 2013, 18:50
par yann18
bonjour,
as-tu pensé à la fonction php explode?
$h="1:35:00";
$tab=explode(':',$h);

$val=(float)$tab[0].'.'.$tab[1]; //affiche le nombre 1.35
//pour multiplier par le taux horaire ($th)

$salaire=$val*$th;

Re: PHP: Date en Decimal

Posté : 22 févr. 2013, 23:09
par moogli
1h35 ça fait pas 1.35h :)

le plus simple c'est de stocker des minutes ensuite tu divise par 60 pour le nombre d'heure :)



@+