Problème accélération time()
#1
Bonsoir,
je voulais tenter de procéder à une accélération du temps par 7.
Au début ça fonctionnait plus ou moins bien. J'ai cependant voulu savoir si s'en était de même sur le long terme.
d'où la tentative suivante :
Code PHP :
$boost date('d/m/Y H:i:s', (time() +  floor700000 date("s")))); 
Donc j'arrive bien jusqu'en 2031 mais subitement il me ramène à la date du jour.
si j'essaye en multipliant par 7
Code PHP :
$boost date('d/m/Y H:i:s', (time() +  floordate("s")))); 
il avance bien mais arrivé au 30 juillet il repasse au 11 juin. Dès fois il avance sans problème mais arrivé à décembre soit il passe à 2019 soit il revient au 11 juin 2018.
Sauriez vous la cause et comment y remédier ?

Le but est d'accélérer le temps INGAME.


Edit :
il est monté jusqu'au 13/07/31 et après capout..
[Image: signature.php?id=1]
Répondre
#2
Salut,

je ne comprends pas pourquoi date("s")? Cela te renverra le nombre de secondes de l'heure actuelle, et je ne comprends pas trop ce que cela vient faire ici... Il te ramène donc à la date du jour car l'heure actuelle est du type 19:46:00 => date("s") vaut alors "0" et donc, time() + 7*date("s") vaut time()

Dans ton cas, il te faut une "ancre" temporelle, c'est à dire un timestamp T0 (réel) indiquant le moment à partir duquel le "boost" est appliqué. Ensuite, il suffit de faire la différence entre le timestamp actuel et ce T0, de la multiplier par ta vitesse d'avancement du temps, et d'ajouter cet écart à T0 pour trouver la nouvelle date ingame.

Code PHP :
$dateIngame date('d/m/Y H:i:s'$T0 + (time() - $T0)*7); 

Attention: l'ancre T0 devra être réactualisée si tu changes la valeur du multiplicateur temporel un jour (ie: si tu passes de x7 à x10 le 1er Aout, alors le timestamp T0 sera la date du 1er Aout)
Répondre
#3
Je pensais (à tord) pouvoir utiliser les secondes pour augmenter ma vitesse ..
Mais après lecture, je me rend compte encore une fois que j'étais bien c**

Dans notre cas,
On peut faire
Code PHP :
$date strtotime("2018-06-16 00:00:00");
$boost date('d/m/Y H:i:s'$date + (time() - $date)*7); 
?
[Image: signature.php?id=1]
Répondre


Sujets apparemment similaires...
Sujet Auteur Réponses Affichages Dernier message
  Accélération du temps xanthius 6 693 07-10-2017, 05:15 PM
Dernier message: Xenos
  $_SERVER['REQUEST_TIME'] ou time() ? php_addict 6 3 114 01-11-2010, 05:57 PM
Dernier message: Sephi-Chan



Utilisateur(s) parcourant ce sujet : 1 visiteur(s)