2010-10-22 27 views
0

J'ai une fonction dans mon jeu que vous ne pouvez utiliser que toutes les 2 minutes. J'ai donc ce codeQuelque chose ne va pas avec mon compte en php et javascript?

$next = strtotime ("+2 minutes"); 

Cette fonction pour vérifier si 2 minutes se sont écoulées:

if(time() <= $next){ 

Je trouve ici le moment où vous pouvez faire à nouveau la fonction:

date("00:i:s", $next - time()) 

Qu'est-ce que J'ai besoin est le nombre de secondes jusqu'à ce que vous puissiez lancer la fonction. J'utilise ce javascript pour le compte à rebours:

$wait = $next - time(); 

<form name="counter"><input type="text" size="8" name="d2"></form> 

<script> 
var milisec=0 
var seconds={$wait} 
document.counter.d2.value='{$wait}' 

function display(){ 
if (milisec<=0){ 
    milisec=9 
    seconds-=1 
} 
if (seconds<=-1){ 
    milisec=0 
    seconds+=1 
} 
else 
    milisec-=1 
    document.counter.d2.value=seconds+"."+milisec 
    setTimeout("display()",100) 
} 

display() 

Est-ce que $next - time() représentent le nombre exact de secondes? Il ne semble pas être correct et c'est un peu important ..

+0

semble éteint d'au moins 20 secondes – ganjan

+0

2 * 60 - 20 = 100? –

Répondre

0

Si était mis en cache la variable $ wait provoquant l'heure d'apparaître faux. fixe ..

0

N'est-il pas plus simple de faire $next=time()+120?

+0

L'une des raisons pour lesquelles ils ont utilisé 'strtotime()' est d'éviter les erreurs, comme dans votre exemple, puisque vous auriez dû utiliser 120 au lieu de 12000, car 'time()' renvoie le temps actuel en nombre de secondes depuis Unix Epoch, et vous avez supposé qu'il est en millisecondes, et même alors, il devrait être 2 * 60 * 1000 = 120000. – ArtBIT

+0

Désolé, désolé) js-style) – Bick