Convertir seconde en H:Min:Sec

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Convertir seconde en H:Min:Sec

Re: Convertir seconde en H:Min:Sec

par hashut » 11 mai 2010, 17:35

voici le code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
include('../conf/conf.php');
$db = mysql_connect($serveur, $user, $passw);
mysql_select_db($bd_base ,$db);
$id=1;
/////////////////////////////////////////////
$req_att = "SELECT  h_fin, DAY(h_fin) AS jour, MONTH(h_fin) AS mois, YEAR(h_fin) AS annee, HOUR(h_fin) AS heure, MINUTE(h_fin) AS minute, SECOND(h_fin) AS seconde  FROM Objet where id =$id" ;
$req = mysql_query($req_att) OR die('erreur dans la requete pour savoir l\'attaque continu');
while($data = mysql_fetch_array($req)) 
{ 
$jour= $data['jour'];
$mois= $data['mois'];
$heure= $data['heure'];
$minute= $data['minute'];
$seconde= $data['seconde'];
$annee= $data['annee'];

}
	$targetYear  = $annee ;
	$targetMonth = $mois ;
	$targetDay   = $jour ;
	$targetHour  = $heure ;
	$targetMinute = $minute ;
	$targetSecond = $seconde ;

$dateFormat = "Y-m-d H:i:s";
$targetDate = mktime($targetHour,$targetMinute,$targetSecond,$targetMonth,$targetDay,$targetYear);

$actualDate = time();
$secondsDiff = $targetDate - $actualDate;
$remainingDay     = floor($secondsDiff/60/60/24);
$remainingHour    = floor(($secondsDiff-($remainingDay*60*60*24))/60/60);
$remainingMinutes = floor(($secondsDiff-($remainingDay*60*60*24)-($remainingHour*60*60))/60);
$remainingSeconds = floor(($secondsDiff-($remainingDay*60*60*24)-($remainingHour*60*60))-($remainingMinutes*60));
$targetDateDisplay = date($dateFormat,$targetDate);
$actualDateDisplay = date($dateFormat,$actualDate);

?>
<script type="text/javascript">
  var days = <?php echo $remainingDay; ?>  
  var hours = <?php echo $remainingHour; ?>  
  var minutes = <?php echo $remainingMinutes; ?>  
  var seconds = <?php echo $remainingSeconds; ?>  
function setCountDown ()
{
  seconds--;
  if (seconds < 0){
      minutes--;
      seconds = 59
  }
  if (minutes < 0){
      hours--;
      minutes = 59
  }
  if (hours < 0){
      days--;
      hours = 23
  }
/////////////////////////////

if( days < 0 ){
	document.getElementById("<?php echo $id ?>").innerHTML =" Termin&eacute;s";
 
}
else
{		
/////////////////////////////  
  document.getElementById("<?php echo $id ?>").innerHTML = days+":"+hours+":"+minutes+":"+seconds;
  
 /////////////////////////////////////////////////////////
}
 ///////////////////////////////////////// 
  setTimeout ( "setCountDown()", 1000 );
/////////////////////////////

//////////////////
}

</script>
</head>

<body onload="setCountDown();">
<div  id=<?php echo $id ?>><?php echo "$remainingDay days, $remainingHour hours, $remainingMinutes minutes, $remainingSeconds seconds";?></div>
<?php
/////////////////////////////
?>

Re: Convertir seconde en H:Min:Sec

par hashut » 30 avr. 2010, 15:41

je comprend pas pk quand je sur en millisecondes sa marche nickel
et quand je formate en heure minutes secondes sa marche plus
je devins fou

Re: Convertir seconde en H:Min:Sec

par hashut » 30 avr. 2010, 15:23

je suis sous mac ??

Re: Convertir seconde en H:Min:Sec

par macgawel » 30 avr. 2010, 15:12

Bonjour.

Question stupide : tu as de quoi déboguer le JS ? (au minimum, sous FF tu dois installer l'extension Web Developper et/ou Firebug)

Re: Convertir seconde en H:Min:Sec

par hashut » 30 avr. 2010, 15:04

ou j'ai pas compris ou sa marche pas toujours compte rebour pas dynamique

Re: Convertir seconde en H:Min:Sec

par AB » 29 avr. 2010, 19:44

C'est pas la bonne méthode, déjà parce que quand tu fais un setInterval ... 1000 ça ne donnera pas une seconde avant de déclencher la fonction mais un temps d' à peu près une seconde et cela peut varier beaucoup entre les différents navigateurs.

Récapitulons : Tu as une date de fin générée en php et un compte à rebour à faire en javascript.

1-verif / Déjà pour que cela fonctionne il faudrait s'assurer que la date-heure actuelle générée par le serveur soit à peu de chose près la même que celle trouvée sur le navigateur en javascript.

Si oui tu met la date de fin générée en php dans une variable javascript si elle n'est pas déjà été crée en début de script

Code : Tout sélectionner

if (typeof fin == 'undefined') var fin = '<?php echo $date_fin?>';
ensuite c'est cette variable javascript "fin" que tu passeras en paramètre dans ta fonction rebour pour pouvoir la récupérer en js dans ta boucle.

Elle doit donc être indiquée à la fois dans ta fonction rebour

Code : Tout sélectionner

function rebours(id,fin)) { ...
et comme paramètre dans setInterval

Code : Tout sélectionner

setInterval(function(){rebours(id,fin);},1000);
Et donc il te reste à faire la soustraction des deux dates : date-originelle php enregistrée dans la vrariable js 'fin' - date instantanée trouvée en javascript et de convertir le tout en secondes.

Si 1-verif/ n'est pas bon tu n'affiche pas de compte à rebour mais simplement un message indiquant la date de fin.

Re: Convertir seconde en H:Min:Sec

par hashut » 29 avr. 2010, 18:49

voila trouver mais plus dynamique donc je fait cree un autre sujet

Code : Tout sélectionner

<?php $db = mysql_connect('localhost','root','root'); mysql_select_db('test' ,$db); $req_att = "SELECT heure_fin FROM date " ; $req = mysql_query($req_att) OR die('erreur dans la requete pour savoir l\'attaque continu'); while($data = mysql_fetch_array($req)) { $hf= $data['heure_fin']; } $mois="Apr"; $jour="30"; $annee="2010"; $datas= "$mois $jour $hf $annee" ; echo"$datas"; ?> <script type="text/javascript"> function rebours(id) { var el = document.getElementById(id), datedujour = <?php echo time(); ?>; var date_even = new Date("<?php echo ($datas); ?>"); var sec=(date_even.getTime() / 1000 - datedujour); var n = 24 * 3600; j = Math.floor (sec / n); h = Math.floor ((sec - (j * n)) / 3600); mn = Math.floor ((sec - ((j * n + h * 3600))) / 60); sec = Math.floor (sec - ((j * n + h * 3600 + mn * 60))); if (sec > 0) { setInterval(function() { datedujour++; el.innerHTML = 'Il reste ' + j +'j'+ h +'h'+ mn +'m'+ sec +'s'; }, 1000); }else{ el.innerHTML = "Temps Termin&eacute;s"; } } window.onload=function(){ rebours('id_du_div'); }; </script> <div id="id_du_div"></div> </body>

Re: Convertir seconde en H:Min:Sec

par hashut » 28 avr. 2010, 17:01

cela fait 6h que je me bat je n'arrive pas
bordel je suis vraiment nul en java
Help svp

Re: Convertir seconde en H:Min:Sec

par hashut » 28 avr. 2010, 08:21

Merci pour l'indice je fait teste sa se matin

merci merci

Re: Convertir seconde en H:Min:Sec

par Nours312 » 27 avr. 2010, 20:30

var secondes = date_even.getTime() / 1000 ;

var days = Math.floor(secondes / 86400);
secondes = secondes - (days*86400);

var hour = Math.floor(secondes / 3600);
secondes = secondes - (hour*3600);

...
...

@++

Re: Convertir seconde en H:Min:Sec

par hashut » 27 avr. 2010, 19:39

je sais mais je n'arrive pas un petit indice
svp

Re: Convertir seconde en H:Min:Sec

par jojolapine » 27 avr. 2010, 18:43

Et bien il s'agit simplement de maths :)

Combien y a-t-il de secondes dans une minute? dans une heure?

Tu peux commencer par convertir tes secondes en heure, il y aura un reste à la division (ou pas si on est à l'heure pile ;) ), tu convertis ce reste en minute, et le reste de ton opération te donnera les secondes restantes :)

Convertir seconde en H:Min:Sec

par hashut » 27 avr. 2010, 17:24

Bonjour

tous est dans le sujet
comment convertir se compte a rebours qui affiche que les seconde en H:min:sec
merci

Code : Tout sélectionner

<?php $datas= "Apr 30 16:00:00 2010" ; ?> <script type="text/javascript"> function rebours(id) { var el = document.getElementById(id), datedujour = <?php echo time(); ?>; var date_even = new Date("<?php echo ($datas); ?>"); setInterval(function() { datedujour++; el.innerHTML = 'Il reste ' + (date_even.getTime() / 1000 - datedujour) + ' secondes'; }, 1000); } window.onload=function(){ rebours('id_du_div'); }; </script> <div id="id_du_div"></div> </body>