JeuWeb - Crée ton jeu par navigateur
[+/- Résolu] Bug avec date() - 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 : [+/- Résolu] Bug avec date() (/showthread.php?tid=1455)

Pages : 1 2


[+/- Résolu] Bug avec date() - manip - 10-07-2007

Bonjour à tous Big Grin

Voici mon code :

Code PHP :
<?php 
echo '<br />Temps : '.date('z \j\o\u\r H \h\e\u\r\e i \m\i\n s \s\e\c',20).'<br /><hr>';

Et voici sont résultat à l'écran :
"Temps : 0 jour 01 heure 00 min 20 sec"

Je ne pense pas que le 20 sec soit égale à 1 heure et 20 sec... J'ai beau mettre n'importe quelle valeur, il y a une heure qui s'ajoute à chaque fois... Si je met 3600 il m'affiche 2h.... Alors que normalement c'est une heure... :heuuu:

J'ai réécrit la fonction date plusieurs fois, mais même problème... J'ai vérifié que j'étais bien en GTM +1 et s'est le cas...

Quelqu'un à une idée ?



Bonne aprem


RE: Bug avec date() - Findel - 10-07-2007

date() n'est pas là pour convertir une durée en texte... c'est pour formatter une date à partir de son timestamp. La valeur 0 correspond au 1er janvier 1970 à 1h (GMT +1), il est donc logique que si tu lui passe 20, ca donne 1h00 et 20 sec.


RE: Bug avec date() - manip - 10-07-2007

Pfff vive le SdZ :mauvais:

Je fais comment alors pour afficher la date d'un timestamp ?


RE: Bug avec date() - elazard - 10-07-2007

je vois pas le rapport avec le sdz et justement si tu avais lu leurs tutos tu verrais comment il faut faire à savoir
<?php
$timestamp = $ta_variable_timestamp ; //peu importe comment tu l'a choppé bdd ou autre
echo 'Le ';echo date('d/m/Y', $timestamp); echo ' à '; echo date('H\h i\m\i\n s\s', $timestamp);
// ce qui donne pour aujourd'hui :Le 10/07/2007 à 19h 03min 41s
echo 'vive le sdz';
?>

voila après tu modifie en fonction de ce que tu veux


RE: Bug avec date() - Mysterarts - 10-07-2007

Je n'accuse pas m@teo, mais il est vrai que moi aussi, je n'avais pas saisi ce point, et pourtant, j'avais été attentif ^^ Il m'a fallut me tromper comme manip pour le comprendre, donc ce n'est pas si évident que ça, je trouve !
Bon, une fois qu'on le sais...

Mysterarts


RE: Bug avec date() - manip - 10-07-2007

Ok parcontre, je ne vois pas pourquoi tu l'as écris en deux partie puisque
Code PHP :
<?php 
date
('d/m/Y \à H\hi\m\i\n s\s', $timestamp)
ça marche aussi....

Bon là ça va, mais maintenant imaginons que mon batiment, il lui faut 25 sec pour passer au prochain niveau puis 2540 sec pour passer au niveau d'après.

Je fais comment pour transformer mes 25 sec en 0j 0h 0m 25s et pareil avec 2540 ? Parce que avec date, ca donne la date du 1/1/1970 .... (ce qui est normale mais bon....)


RE: Bug avec date() - Mysterarts - 10-07-2007

La fonction date ne sert pas à ça.
Je vois pas pourquoi tu veux tranformer 25 secondes en 0j 0h 0m 25s ?

Mysterarts


RE: Bug avec date() - manip - 10-07-2007

C'est pour les temps de contruction des batiments, ils sont exponentiel hors comme je dois calculer avec le timestamp, je calcule le temps de construction des batiments en seconde. Donc au départ c'est quelques secondes : 25 par exemple, mais si le joueur arrive au niveau 20 ca peut etre 18000 secondes par exemple. Mais sur la page ou j'affiche le temps de construction, je vais pas mettre 18000 secondes mais plutot 5h et 0 secondes...

Tu comprends ?


RE: Bug avec date() - Maegia - 10-07-2007

Fabriques-toi ta propre fonction, non ?

Code PHP :
<?php 
function tempsRestant ($x)
{
// Calcul du laps de temps
$x = $x - time();

// Affichage du nombre d'heures restantes
if (($x / 3600) > 1) $reste = floor($x / 1800).' heures ';

// Suite pour minutes et secondes
[...]

return
$reste;
}

echo
tempsRestant($timestamp);



RE: Bug avec date() - Byleth - 10-07-2007

Utilise la fonction modulo pour la suite : 4560 % 60 ça te donneras le nombre de minutes que tu pourras aussi arrondir à l'inférieur. Le nombre de seconde, c'est modulo 3600.

Enfin, je me suis occupé de mioches toute la journée, alors je garantit pas mon alorythme...