JeuWeb - Crée ton jeu par navigateur

Version complète : Problème accélération time()
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
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 :
<?php 
$boost
= date('d/m/Y H:i:s', (time() + floor( 700000 * 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 :
<?php 
$boost
= date('d/m/Y H:i:s', (time() + floor( 7 * date("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..
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 :
<?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)
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 :
<?php 
$date
= strtotime("2018-06-16 00:00:00");
$boost = date('d/m/Y H:i:s', $date + (time() - $date)*7);
?