Convertir nombre decimal en heure minute seconde

[Fermé]
Signaler
Messages postés
46
Date d'inscription
samedi 17 janvier 2015
Statut
Membre
Dernière intervention
4 février 2016
-
Messages postés
816
Date d'inscription
dimanche 23 décembre 2007
Statut
Membre
Dernière intervention
16 novembre 2016
-
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

Messages postés
816
Date d'inscription
dimanche 23 décembre 2007
Statut
Membre
Dernière intervention
16 novembre 2016
52
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
46
Date d'inscription
samedi 17 janvier 2015
Statut
Membre
Dernière intervention
4 février 2016

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
Messages postés
816
Date d'inscription
dimanche 23 décembre 2007
Statut
Membre
Dernière intervention
16 novembre 2016
52
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
Messages postés
865
Date d'inscription
lundi 28 octobre 2013
Statut
Membre
Dernière intervention
19 mars 2021
316
Bonsoir,

La fonction est date()

ex: date('d/m/Y à H:i:s',$variable_contenant_la_valeur)