Insérer un temps dans une BDD

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Insérer un temps dans une BDD

par Ryle » 26 sept. 2007, 15:10

Oops, au temps pour moi :)

J'ai plus l'habitude de m'arrêter aux secondes que de descendre jusqu'aux centièmes :)

par Deltod » 26 sept. 2007, 14:32

Cela fonctionne très bien, mise à part lorsque le temps est inférieur à une minute. Par exemple mon temps est 37sec39centièmes et ça m'affiche 00:62:19...Je suis en train de chercher ce qui pourrait clocher.

EDIT : J'ai compris l'erreur, elle se trouvait ici :

$secondes = floor ( $reste1 / 100 ); // nb de secondes contenues dans les centièmes restants

Car il y a 100 centième dans une seconde, non pas 60 ;). Merci de l'aide. Je pense que mon problème est maintenant résolu. Merci encore :wink: .

par Ryle » 26 sept. 2007, 13:57

Modération :
Si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet. ;)

par Deltod » 26 sept. 2007, 13:29

Clair, net, précis. Merci beaucoup :).

par Ryle » 26 sept. 2007, 10:32

Une minute ça fait 60 secondes, une seconde ça fait 100 centièmes.. suffit donc de multiplier tes secondes par 100, tes minutes par 60*100, d'additionner le tout et hop, t'as une valeur en centièmes.

Pour revenir aux valeurs d'origine on fait l'inverse : tu as une valeur en centième que tu divises par 60*100 pour obtenir les minutes (en arrondissant à l'inférieure). Ce qui reste de la division (que tu peut obtenir à l'aide de l'opérateur modulo "%"), tu le divises par 60 pour obtenir les secondes (en arrondissant une fois encore à l'inférieur), et ce qui reste de cette nouvelle division ce sont tes centièmes :)
$minutes = floor( $valeur / (60 * 100) ); // nb de minutes contenues dans ta valeur
$reste1 = $valeur % (60 * 100); // nb de centièmes restants

$secondes = floor ( $reste1 / 60 ); // nb de secondes contenues dans les centièmes restants
$centiemes = $reste1 % 60; // nouveau nb de centièmes restants

par Deltod » 25 sept. 2007, 22:03

Oui c'est une bonne idée merci, j'y avais songé moi aussi en suite :).
Merci en tout cas.

EDIT : En fait j'ai un legers problèmes, je n'arrive pas à reconvertir les centièmes en minutes/secondes/centièmes...

par netsupra » 25 sept. 2007, 21:17

Salut,
idée bete : stocker les resultat dans la plus petite unité necessaire
par exemple si tu va jusqu'a la seconde :
1:58 = 118
apres pour faire la moyenne c simple : tu recuperes tous les temps et tu divises par le nombre de résultats : tu auras le temps moyen en secondes ;)
Netsupra

Insérer un temps dans une BDD

par Deltod » 25 sept. 2007, 20:21

Bonjour à tous.
Je suis en ce moment même en train de réaliser un petit script PHP pour mon équipe sur Trackmania Nations, et j'aimerai que ma BDD contienne les records personnel des joueurs, sous la forme mm:ss:cc (mm=minute, ss=seconde, cc=centieme). L'idée final étant de faire la moyenne des records de chaque joueurs, pour obtenir un temps.
Exemple :

Joueur 1 map 1 : 00:58:10
Joueur 1 map 2 : 01:02:00
Moyenne temps joueur 1 : 1:00:00.

Je me doute que cela ne doit pas être très compliqué, mais je bloque...J'en appelle donc à votre aide !
Merci d'avance :). Bonne journée.