JeuWeb - Crée ton jeu par navigateur
Le temps, ou l'heure - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Le temps, ou l'heure (/showthread.php?tid=869)



Le temps, ou l'heure - Slyvore - 26-02-2007

Alors, je cherche le moyen de jouer avec le temps.

En effet, dans mon jeu, les joueurs auront un credit temps. J'ai déjà pas mal bosser sur ce point, donc normalement, y a pas de probleme, j'arrive à soustraire un temps d'un autre etc..

Par contre, pour la date c'est un autre point méchant. En effet, les fonction de date qui sont dans SQL ne prenne effet qu'à partir de 1970 il me semble. Donc du coup je n'arrive pas a mettre une date de 1910 par exemple.

Comment gerer vous vos dates?


RE: Le temps, ou l'heure - Seren - 26-02-2007

Je gère les dates avec php (et non SQL) avec les fonctions time(), date() etc.. ( voir manuel pour le détails )

Après ce que je fais personnellement c'est que je triche sur les dates au moment de l'affichage de la date.

J'ai un environnement futuriste placé arbitrairement à 500 ans dans le futur. C'est pas non plus gérer par les dates de php (ca va de 1970 à 2038 si je me souviens bien.)

Donc au moment d'afficher, par exemple aujourd'hui:
le "26 février 2007", je récupère l'année et je fais +500.

ça donne "26 février 2507". Rien ne t'empêche de faire quelque chose de similaire en soustrayant. (Sachant qu'avec ce système tu es toujours limité à la même plage de temps qui doit être d'environ 70 ans.)


RE: Le temps, ou l'heure - Slyvore - 26-02-2007

Ouaiche, je pensais faire ca comme ca, mais bon, je me demandais si du monde c'étais amusé à développer ca


RE: Le temps, ou l'heure - Seren - 26-02-2007

Il y a rien à développer puisque ça prend une ligne..

Code PHP :
<?php 
$timestamp
= ... // Ton timestamp initialisé comme tu veux, BDD, constante...
$year = date("Y", $timestamp); // ça te retourne l'année sur 4 chiffres.
$year = $year + 500; // tu mets l'offset que tu veux +500, -30...

echo "Nous sommes en l'an de grâce ". $year. " de notre Seigneur";



RE: Le temps, ou l'heure - Chewbacca - 26-02-2007

je vais faire mon chieur mais dans le cas exceptionnel où ta date, c'est le 29 février d'une année bisextile, en ajoutant arbitrairement un chiffre comme ça, tu peux très bien te retrouver avec une aberration comme un 29 février dans une année non bisextile. C'est pas très important mais c'est quand même un détail, et tout le monde sait que les détails font la différence Wink


RE: Le temps, ou l'heure - Seren - 26-02-2007

Chewbacca a écrit :je vais faire mon chieur mais dans le cas exceptionnel où ta date, c'est le 29 février d'une année bisextile, en ajoutant arbitrairement un chiffre comme ça, tu peux très bien te retrouver avec une aberration comme un 29 février dans une année non bisextile. C'est pas très important mais c'est quand même un détail, et tout le monde sait que les détails font la différence Wink

500 est divisible par 4, donc si X est divisible par 4 donc bissextile, la "future date" X+500" est aussi divisible par 4, donc aussi bissextile.

En gros il y a un 29 février 2008, mais il y a aussi un 29 février 2508.

La seule exception qui pourrait intervenir, c'est la seconde règle, celle des années divisibles par 400. Donc en effet, si mon jeu existe jusqu'en 2300, 2300 n'est pas bissextile, mais 2800 l'est.

Il y aura en effet une erreur.

Mais sachant que mon jeu n'existera plus en 2300, il est inutile d'ajouter des tests supplémentaire dans mon cas Smile.


RE: Le temps, ou l'heure - Chewbacca - 26-02-2007

ouep, mais moi je disais ça pour toutes les valeurs, mais c'est vrai que t'as raison. Mais il me semble qu'il y a une règle qui dit que centenaires et millénaires ne peuvent jamais être bissextiles. Enfin je dis ça, je suis sûr de rien hein Wink


RE: Le temps, ou l'heure - Seren - 26-02-2007

Non mais sur le fond t'as raison, si tu veux utiliser ce système il vaut mieux avoir un décalage qui est un multiple de 4 pour limiter les erreurs.