Compte à rebours dynamique international ... [Résolu]

cs_ex0 3 Messages postés dimanche 22 novembre 2009Date d'inscription 21 décembre 2009 Dernière intervention - 20 déc. 2009 à 11:56 - Dernière réponse : cs_ex0 3 Messages postés dimanche 22 novembre 2009Date d'inscription 21 décembre 2009 Dernière intervention
- 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 ?)
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_ex0 3 Messages postés dimanche 22 novembre 2009Date d'inscription 21 décembre 2009 Dernière intervention - 21 déc. 2009 à 08:39
3
Merci
<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

Merci cs_ex0 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 91 internautes ce mois-ci

Commenter la réponse de cs_ex0
cs_ex0 3 Messages postés dimanche 22 novembre 2009Date d'inscription 21 décembre 2009 Dernière intervention - 21 déc. 2009 à 08:37
0
Merci
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
Commenter la réponse de cs_ex0

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.