Petit bug dans compte à rebours php

Résolu
nico3009 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   -  
nico3009 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voilà, j'ai fait un petit souci dans un compte à rebours php.

Tant que l'heure limite n'est pas atteinte, le compte à rebours marche impec.

Dès que l'heure fixée est atteinte au lieu de m'écrire "Temps écoulé" comme je le voulais, il m'écrit :
"23h59mn59s Temps écoulé" et continue un compte à rebours.

Je précise également que je ne fais affciher les jours, heures et minutes uniquement si elles sont supérieures à 0.

Voici le script, j'attends votre aide. Merci.

$finpronosall = mktime($heureall, $minuteall, $secondeall, $moisall, $jourall, $anneeall);
$timestamp = time();
$resteall = $finpronosall-$timestamp;
$restejoursall = $resteall/86400;
$restejoursall1 = floor($restejoursall);
$resteheuresall = ($resteall - ($restejoursall1 * 86400))/3600;
$resteheuresall1 = floor($resteheuresall);
$resteminall = ($resteall-(($restejoursall1 * 86400)+($resteheuresall1 * 3600)))/60;
$resteminall1 = floor($resteminall);
$restesecall = ($resteall-(($restejoursall1 * 86400)+($resteheuresall1 * 3600)+($resteminall1 * 60)));
$restesecall1 = floor($restesecall);

et pour l'affichage :

if ($restejoursall1 > "0") echo $restejoursall1;
if ($restejoursall1 > "0") echo " jours ";
if ($resteheuresall1 > "0")echo $resteheuresall1;
if ($resteheuresall1 > "0") echo " h ";
if ($resteminall1 > "0") echo $resteminall1;
if ($resteminall1 > "0") echo " min ";
if ($restesecall1 > "0") echo $restesecall1;
if ($restesecall1 > "0") echo " s ";
if ($timestamp > $finpronosall) echo "Temps écoulé";

8 réponses

Profil bloqué
 
bonjour,
normal qu'il continue dans ce que tu as posté je ne vois pas de demande d'arrêt du compteur.
0
nico3009 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   1
 
Ok pour le principe, je ne savais pas en fait.
Par contre je fais comment pour ça?
0
Profil bloqué
 
j'ai pas tout ton code mais apres le "if ($timestamp > $finpronosall) echo "Temps écoulé";" tu peux mettre une autre fonction qui te permettra soit d'arreter le compteur soit d'aller sur une autre page soit de lancer un autre ordre que l'affichage de temps écoulé ... tout dépend à quoi ton compteur sert
0
nico3009 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   1
 
C'est en fait un compte a rebours qui est à titre informatif pour l'utilisateur.
J'ai fait un "active link" dans un autre script et ce compte a rebours lui permet de connaitre jusqu'à quand ce lien va rester actif.
Je veux donc qu'il s'affiche simplement "Temps écoulé" quand la condition <<if ($timestamp > $finpronosall)>> est vérifiée.
Merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
toto
 
Bonjour
if ($resteall1 >0) echo $restejoursall1," jours ",$resteheuresall1," h ",$resteminall1," min "$restesecall1," s "; 
else echo "Temps écoulé";
0
nico3009 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   1
 
Ben je veux pas faire simplement << if ($resteall1 >0) >> parce que sinon il peut m'afficher "0 jours 0 heures 0 minutes 18 secondes" par exemple. Dans mon script je lui demande d'afficher simplement "18 secondes".

Le problème c'est qu'à chaque fois il me remet un compte à rebours de 24 heures!
0
toto
 
OK, je n'avais pas vu ce point.

if ($timestamp >= $finpronosall) echo "Temps écoulé";
else {
if ($restejoursall1 > 0) echo $restejoursall1," jours "; 
if ($resteheuresall1 > 0)echo $resteheuresall1, " h "; 
if ($resteminall1 > 0) echo $resteminall1," min "; 
if ($restesecall1 > 0) echo $restesecall1," s "; 
}

Comme ça, si le temps est écoulé, il n'exécute pas tout le reste.
Au passage, compare des nombres avec des nombres plutôt qu'avec des textes : $restejoursall1 > 0 et non pas $restejoursall1 > "0"
et compare bien $timestamp >= $finpronosall car sinon, en cas d'égalité, tu n'affiches rien du tout
0
nico3009 Messages postés 103 Date d'inscription   Statut Membre Dernière intervention   1
 
Ah ok!

Ben merci bien ça marche impec. C'est vrai que je n'ai pas le réflexe de tourner le script à l'envers :-))

Je te remercie beaucoup en tous cas ainsi que titans.fr

Bonne continuation.
0