Je planche sur un problème depuis quelques temps, je souhaite créer une progress bar dynamique qui change avec le temps. (c'est pour une app ou je créé des fiches pour des concerts, donc y à des dates : date de création de la fiche ---> date de début du concert et date de fin).
Ça fonctionne... un peu ! en gros, le calcul se fait pas de manière précise.
Voici en gros le fonctionnement :
Le % de la progress bar est déterminé par la date de fin et now (time())
Si now est supérieur a la date de fin du concert alors le % égal 100... et je souhaite avoir le % le plus précis possible depuis la date de création de de la fiche du concert.
Je bloque vraiment et une aide avisée sera plus que la bien venue
Non mais lit le code mdr !!! il y à une raison et le code est assez propre, tu répond à beaucoup de messages mais constat : cela sert pas à grand chose...
si tu as une idée pour m'aider ce sera avec plaisir
Je l'ai déjà fait, je ne m'amuses pas à poster dans un sujet sans avoir lu la totalité de son contenu.
Tu sais ce que c'est au moins de donner une valeur par défaut à une variable au moins ?
Car j'ai eu beau relire 6 fois ton code et je ne vois pas en quoi c'est nécessaire que tu redéfinisse la variable deux fois de plus pour lui donner la même valeur.
- Edité par Lartak 17 mai 2019 à 20:26:42
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
Si tu l'as déjà fait, tu peux aider du coup sans non plus balancer ton code, mais donner une piste... et si tu as bien lu le code, tu as donc du voir que le % défini à plusieurs reprise l'est car il le faut (c'est des moments ou conditions spéciales (des erreurs par exemple, si la date de début est supérieur a la date de fin alors erreur) ...
Certes un code peut toujours être optimisé et avec le temps il le sera mais déjà j'aimerai faire fonctionner niquel.
Si tu as une idée pour optimiser je suis preneur mais comme il est là, il marche, manque juste la manière de faire le calcul correctement pour avoir le bon % aux bons moments
Petit Up,
Dans ma réflexion, j'ai penses comme ca :
$crea = timestamp = 0% (le point d'entré)
$now = timestamp = ??% (obligatoirement supérieur à $crea mais inférieur à $end)
$end = timestamp = 100%
donc je fais ca pour tester :
$percentage = (100 * $now) / $end;
mais j'obtiens tout le temps 99,xxx%
Bref, j'ai beau tourner le truc dans tous les sens, rien ne marche, y aurait-il quelqu'un qui pourrait m'éclairer :/
tu parles de dates et tu utilises time() et des timestamp, c'est déjà un problème. On manque un peu d'infos, tu fais ton décompte en quelles unités ? Jours, heures...?
Donc tu gères tout à la seconde près ? Quoi qu'il en soit, personnellement j'utiliserais plutôt la classe Datetime, c'est quand même beaucoup plus adapté. Tu pourrais calculer tes différences directement, en secondes si tu veux même si ça me semble un peu inutile.
Dans mes précédents msg, j'était dans des phases de tests et je ne suis pas parti dans la bonne direction.
Foohx a écrit:
Tu veux un pourcentage qui est obligatoirement un entier ? Non en fait, les decimale passent (eg : 45,4157632% ne pose pas de prob, c'est même plus précit du coup qu'avec round)
Ou tu n'arrives pas à avoir un pourcentage avec plus de 3 décimales ?
Parce que dans ton premier code, tu round() à 0 décimal.
@Lartak Le code peu largement être amélioré tout comme tes interventions ---> Oui c'est sure, mais il a pas tord, après re re re re... lecture mon code a été largement amélioré (beaucoup de { } on sautés par exemple... merci quand meme a lui d'avoir rep hé hé hé
Ensuite, voici là ou il y avait des problèmes :
$crea = strtotime($this->getCreationDate()); // Là c'est un Datetime en base
$start = strtotime($this->getDateStart()); // Là c'est un Date en base
$end = strtotime($this->getDateEnd()); // Là c'est un Date en base
$now = time(); // Là vous savez lol
Partant de là, en passant toutes ses variables en Datetime et en faisant un strtotime de chaque, on peut faire se calcul :
Cela fonctionne, start est un marqueur (date du debut du concert) dans cette timeline qui est utilisé pour définir des états (Débute dans, à commencé, etc...), bref, Problème Résolu
Merci pour vos retour, et éventuellement hésitez à envoyer vos idées, se sujet est assez récurent et je penses que cela aiderai pas mal de monde
- Edité par Artof 21 mai 2019 à 9:45:06
Progress bar dynamique
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.
N'oubliez pas d'activer les erreurs PDO.
N'oubliez pas d'activer les erreurs PDO.