05-01-2011, 05:30 PM
Merci à vous,
Et surtout à toi Holy, Ton numéro 3 est correct.
Le probléme venait de la fonction parseInt qui est buggé pour la chaine '08'.
La Solution consiste à forcer le parseInt en base 10 ==>
@Hideaki : Le temps utiliser comme départ du timer est celui qu'il reste avant la fin de la construction. Il est calculer par le php à partir de l'enregistrement de construction et le temps actuel du serveur.
Ce script est appelé par une autre page où se trouve le "SetTimeout". Ayant Besoin de plusieurs timer à la fois ( un par construction en cours ) je charge ce script et règle mes SetTimeout Dynamiquement.
@NicoMSEvent : Le Javascript ne valide pas la fin de la construction , il fait recharger la page quand le temps restant est à 0. C'est une fonction php appelé dans le début de la page qui se charge de vérifier si des construction sur le compte sont à finaliser ou pas.
Voila, Merci de votre aide, car le bug du parseInt ne me serait jamais venu à l'esprit.
J'ai retravaillé le script en m'apercevant que je le compliquer inutilement :
Et cela fonctionne impec ^^
Et surtout à toi Holy, Ton numéro 3 est correct.
Le probléme venait de la fonction parseInt qui est buggé pour la chaine '08'.
La Solution consiste à forcer le parseInt en base 10 ==>
parseInt('Chaine',10);
@Hideaki : Le temps utiliser comme départ du timer est celui qu'il reste avant la fin de la construction. Il est calculer par le php à partir de l'enregistrement de construction et le temps actuel du serveur.
Ce script est appelé par une autre page où se trouve le "SetTimeout". Ayant Besoin de plusieurs timer à la fois ( un par construction en cours ) je charge ce script et règle mes SetTimeout Dynamiquement.
@NicoMSEvent : Le Javascript ne valide pas la fin de la construction , il fait recharger la page quand le temps restant est à 0. C'est une fonction php appelé dans le début de la page qui se charge de vérifier si des construction sur le compte sont à finaliser ou pas.
Voila, Merci de votre aide, car le bug du parseInt ne me serait jamais venu à l'esprit.
J'ai retravaillé le script en m'apercevant que je le compliquer inutilement :
//Timer
function Timer(Element)
{
//Récupération du temps dans la div Element
var TimeD = document.getElementById(Element).innerHTML;
var tmp = TimeD.split(":");
//Mise en place de l'heure,minute,seconde
var H = parseInt(tmp[0],10);
var M = parseInt(tmp[1],10);
var S = parseInt(tmp[2],10);
//Initialisation de la variable texte timer
var timer="";
//Controle de "format"
if(M == 0){ H = H - 1; M = 60; }
if(S == 0){ M = M - 1; S = 60;}
//Décompte d'une seconde. ( Script appeler toutes les 1 secondes )
S = S - 1 ;
//Mise en forme du temps
if(H<10){timer += "0"+H+":"; } else { timer += H+":"; }
if(M<10){timer += "0"+M+":"; } else { timer += M+":"; }
if(S<10){timer += "0"+S+""; } else { timer += S+""; }
//Affichage nouveau temps dans la div Element
document.getElementById(Element).innerHTML = timer ;
//Rechargement de la page, la construction est censé être a terme
if(H == 0)
{
if(M == 0)
{
if(S == 0)
{
location.reload();
}
}
}
}
Et cela fonctionne impec ^^