Graduer un axe en heures

Résolu
otelis Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -  
otelis Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'utilise JPGraph pour tracer des courbes. Dans ma base MySQL, j'ai le champ "heure" (type integer(4)) sous la forme suivante :
0830 pour 8h30, 1000 pour 10h00 etc....
Je cherche désespérément comment faire (je mélange tout : formats MySql, PHP etc....)

J'obtiens bien une graduation 800, 900, 1000 etc...(ce qui est logique). Mais bien évidemment le point à 8h30 ne se trouvera pas au milieu entre 800 et 900.

Et en réalité, je souhaiterais pouvoir graduer ainsi : 8h00, 9h00, 10h00 etc.... éventuellement 8h00, 8h30, 9h00 etc....

Merci d'avance pour vos pistes ! Ou la solution miracle qui est peut-être très simple !

Elisabeth

4 réponses

lgu
 
C'est normal que 8h30 ne soit pas au milieu, car ce n'est pas dans la même base ! Je m'explique : pour faire 1 heure, il te faut 60 minutes, alors que pour passer de 800 à 900 tu as 100 "points" ! Alors pour que ta graduation soit linéaire, il faut convertir tes minutes de la façon suivante : 30 minutes = 0.5 heure. Donc il faudra faire une règle de trois pour convertir tes minutes en base "décimale" ! Pour ton axe, la conversion sera :
minutes * 100 / 60.
Exemple : 8h30 = 800 + ( 30*100/60) = 800 + 50 = 850
Et là, tu auras bien 8h30 entre 800 et 900

lgu.
0
otelis Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
Merci ! J'avais bien compris pourquoi 8h30 n'était pas au milieu mais j'étais partie dans l'idée de trouver une fonction qui fasse tout cela automatiquement.

Elisabeth
0
lgu
 
Donc tu as ta fonction : elle prends en entré les minutes (ou l'heure complète) et renvoie l'équivalent en base 10 ! :)

lgu.
0
otelis Messages postés 23 Date d'inscription   Statut Membre Dernière intervention  
 
Oui, effectivement !

Elisabeth
0