Pb compte rebour dynamique

hashut Messages postés 3 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 7 mai 2010 - 3 mai 2010 à 11:22
hashut Messages postés 3 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 7 mai 2010 - 7 mai 2010 à 11:45
Bonjour
j'ai un blem sur un compte rebours
quand je suis en millisecondes le compte rebours fonctionne bien mais des c-que je formate la date en heure minutes et secondes le compte rebour ne decompte plus en dynamique qui peut m'aidee svp
-------------------------------------------------------------------------------

<?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 ' +(date_even.getTime()/1000 -datedujour)+'s'; //la sa marche
el.innerHTML = 'Il reste ' + j +'j'+ h +'h'+ mn +'m'+ sec +'s'; // la sa arche pas PK?
}, 1000);
}else{
el.innerHTML = "Temps Terminés";
}
}
window.onload=function(){
rebours('id_du_div');
};
</script>

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
3 mai 2010 à 12:05
Salut,

C'est parce que tu ne recalcule pas ta date : il faut que tu la recalcule à chaque appel de ta fonction :

setInterval(function() { 
// à ce niveau là, il faut recalculer j, h, mn et sec, sinon forcément, ils ne sont pas modifiés !
el.innerHTML = 'Il reste ' + j +'j'+ h +'h'+ mn +'m'+ sec +'s'; // la sa arche pas PK? 
}


Fais une petite recherche dans les sources pour voir comment faire un compte à rebours en pur javascript, sans passer par php pour calculer les secondes restantes.

Par exemple celui-ci
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
hashut Messages postés 3 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 7 mai 2010
3 mai 2010 à 13:34
re
je doit recuper l'heure actuelle du serveur et non pas du client
et la date de fin se trouve dans la base sql
est il possible dans se cas de tous cree en pur javascript ?
merci
0
hashut Messages postés 3 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 7 mai 2010
7 mai 2010 à 11:45
slt
personne peut m'aide svp
je m'en sort pas
merci
0
Rejoignez-nous