Convertir nombre decimal en heure minute seconde

Fermé
BapPro Messages postés 46 Date d'inscription samedi 17 janvier 2015 Statut Membre Dernière intervention 4 février 2016 - 15 janv. 2016 à 18:40
 Utilisateur anonyme - 16 janv. 2016 à 17:06
Bonjour,
J'ai cette requete
$qry1=" SELECT Sum(TIME_TO_SEC( TIMEDIFF(EndTime, StartTime))/3600) as HoursWorked
 FROM qbreplace.timesheet_prod
  where ProductionDate >= '".$date."' and ProductionDate <= '".$date1."' and Client = '".$cod."' and EndTime!='00:00:00' "; 


$res1 = @mysqli_query($dbc, $qry1);


 if ($res1) {
          while($d=mysqli_fetch_array($res1))
            {
			
          echo"<tr class=\"acccb\">
			
            
			<th class=\"a1cb\">".$d['HoursWorked']."</th>
			 </tr>";
			 
			}
			
		}
  mysqli_free_result($res);


l'echo m'affiche le resultat en decimal par exemple : 1234.45
Comment faire pour convertir en heure minute seconde comme: 28:23:09
Merci
A voir également:

2 réponses

Utilisateur anonyme
15 janv. 2016 à 19:14
Bonsoir,

Pour convertir des secondes en heures et minutes :
$duree = tes secondes;
$heures=intval($duree / 3600);
$minutes=intval(($duree % 3600) / 60);
$secondes=intval((($duree % 3600) % 60));


Après si c'est du timestamp, comme l'a dit foxyfox51, tu as la fonction date().

Cordialement,
1
BapPro Messages postés 46 Date d'inscription samedi 17 janvier 2015 Statut Membre Dernière intervention 4 février 2016
Modifié par BapPro le 15/01/2016 à 21:57
je viens de tester avec la variable qui vaut : $duree= 1767.7553
en essayant avec date('H:i:s',$duree)
j'ai cette resultat :19:29:27.
Effectivement avec ma requete j'ai 1767 heures avec des minutes et des secondes. le resultat que je voudrais avoir c'est l'affichage sur cette forme par exemple: 1767:45:56
0
Si tu as un temps de base en heure, multiplie le par 3600 pour avoir un temps en seconde. Sauf, je ne sais pas si les chiffres après la virgule vont bien se faire prendre en compte.

$duree = 1767.7553 * 3600;
$heures = intval($duree / 3600);
$minutes = intval(($duree % 3600) / 60);
$secondes = intval((($duree % 3600) % 60));
echo ''.$heures.':'.$minutes.':'.$secondes.'';
Ca va te retourner : 1767:45:19


La fonction date ne marche qu'avec un timestamp : https://www.php.net/manual/fr/function.date.php
0