Compte à rebours dynamique international ...

Résolu
cs_ex0 Messages postés 3 Date d'inscription dimanche 22 novembre 2009 Statut Membre Dernière intervention 21 décembre 2009 - 20 déc. 2009 à 11:56
cs_ex0 Messages postés 3 Date d'inscription dimanche 22 novembre 2009 Statut Membre Dernière intervention 21 décembre 2009 - 21 déc. 2009 à 08:39
J'ai récupéré sur ce site un code pour afficher un compte à rebours dynamique mais ce dernier utilise
la fonction date() or cela engendre évidemment des erreurs si le site est consulté depuis l'étranger
(ca fait parti de mes contraintes) donc l'idée actuelle est de donné à une variable la différence entre
l'heure du serveur [obtenu à partir de php avec time()] et ma datedefin [stockée dans la bdd récupérée avec php]
et de décrémenté cette variable chaque seconde.
Mais je ne vois pas comment faire pour qu'une variable soit définie dans une fonction une fois
puis pour chaque appel de la fonction il récupère la nouvelle valeur de cette variable.

voici l'original :

<script type="text/JavaScript">
var Affiche=document.getElementById("Compte");
function Rebour() {
var date1 = new Date();
var date2 = "<?php echo $Mktime2;?>";
var sec = (date2 - (date1/1000));
var n = 24 * 3600;
if (sec > 0) {
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)));
Affiche.innerHTML = "Temps restant : " + j +" jours "+ h +" heures "+ mn +" minutes "+ sec + " secondes ";
window.status = "Temps restant : " + j +" jours "+ h +" heures "+ mn +" minutes "+ sec + " secondes ";
}
tRebour=setTimeout ("Rebour();");
}
Rebour();
</script>

la variable sec deviendrai donc statique (car différence de deux variables php) donc il faut trouver une façon de la faire décrémenter de 1 par seconde (dynamiquement) merci d'avance pour votre aide. (peut être faut-il repensé le fonctionnement total :s ?)

2 réponses

cs_ex0 Messages postés 3 Date d'inscription dimanche 22 novembre 2009 Statut Membre Dernière intervention 21 décembre 2009
21 déc. 2009 à 08:39
<label id="Compte"></label>
<script type="text/JavaScript">
var Affiche=document.getElementById("Compte");
function Rebour() {
var j = new Date();
var k = "<?php echo $Mktime1;?>";
var i = (j/1000-k);
var date1 = "<?php echo $Mktime1;?>";
var date2 = "<?php echo $Mktime2;?>";
var sec = (date2 - date1 - i);
var n = 24 * 3600;
if (sec > 0) {
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)));
Affiche.innerHTML = "Temps restant : " + j +" jours "+ h +" heures "+ mn +" minutes "+ sec + " secondes ";
window.status = "Temps restant : " + j +" jours "+ h +" heures "+ mn +" minutes "+ sec + " secondes ";
}
tRebour=setTimeout ("Rebour();");
}
Rebour();
</script>


... c'est celui-ci pardon :s
3
cs_ex0 Messages postés 3 Date d'inscription dimanche 22 novembre 2009 Statut Membre Dernière intervention 21 décembre 2009
21 déc. 2009 à 08:37
j'ai trouvé :

$Mktime2=($resultats['datedefin']);
$Mktime1=time();


<label id="Compte"></label>
<script type="text/JavaScript">
var Affiche=document.getElementById("Compte");
function Rebour() {
var date1 = new Date();
var date2 = "<?php echo $Mktime2;?>";
var sec = (date2 - (date1/1000));
var n = 24 * 3600;
if (sec > 0) {
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)));
Affiche.innerHTML = "Temps restant : " + j +" jours "+ h +" heures "+ mn +" minutes "+ sec + " secondes ";
window.status = "Temps restant : " + j +" jours "+ h +" heures "+ mn +" minutes "+ sec + " secondes ";
}
tRebour=setTimeout ("Rebour();");
}
Rebour();
</script>


voila :p
0
Rejoignez-nous