Décompteur de jours |
Répondre | Page 12> |
Auteur |
Sujet Recherche Options des sujets
|
Serval62
Newbie Depuis le: 03 Sep 2015 Status: Inactif Points: 18 |
Options des messages
Thanks(0)
Envoyé : 03 Sep 2015 à 21:36 |
Bonjour à tous,
Je fais partie d'une asso organisant une course à pied annuelle. Pour des raisons que je ne citerai pas ici, j'ai été dans l'obligation de créer un nouveau site pour l'asso. J'ai quelques bonnes bases en informatique mais pas en programmation. Je me suis donc lancé dans l'élaboration d'un site avec OE en partant d'une page blanche car aucun modèle ne me convenait. Je dois avouer que, vu mon niveau, je suis assez fier du résultat (merci les tutos du forum) même si je suis bien conscient qu'il y a encore du boulot. Cependant, il y a un élément que je voudrai mettre en place mais que je ne trouve pas dans le forum : Je souhaiterai afficher un décompteur de temps. Je m'explique : Le départ de la prochaine course aura lieu le 26 juin 2016 à 09:00 et j'aimerai que le site indique que la course aura lieu dans MM mois, JJ jours, HH heures et mm minutes et que ce décompte soit affiché en temps réel par rapport au moment de consultation de la page. Ce compteur doit pouvoir être réinitialisé en entrant une nouvelle date (celle de la course de l'année suivante) Je ne sais pas si j'ai été assez clair dans mes explications mais si oui et que quelqu'un a la solution, je suis preneur. Après, il me restera à rendre le site "responsive" mais ça, c'est une autre histoire..... chaque chose en son temps. |
|
nico38
Senior Member Depuis le: 18 Jan 2014 Status: Inactif Points: 3967 |
Options des messages
Thanks(0)
|
copier coller dans un bloc de code visuel :
1ERE SOLUTION <?php $annee = date('Y'); $course = mktime(8, 0, 0, 06, 26, $annee); if ($course < time()) $course = mktime(8, 0, 0, 06, 26, ++$annee); $tps_restant = $course - time(); //============ CONVERSIONS $i_restantes = $tps_restant / 60; $H_restantes = $i_restantes / 60; $d_restants = $H_restantes / 24; $s_restantes = floor($tps_restant % 60); // Secondes restantes $i_restantes = floor($i_restantes % 60); // Minutes restantes $H_restantes = floor($H_restantes % 24); // Heures restantes $d_restants = floor($d_restants); // Jours restants //================== setlocale(LC_ALL, 'fr_FR'); echo 'Nous sommes le '. strftime('<strong>%d %B %Y</strong>, et il est <strong>%Hh%M</strong>') .'.<br />' . 'la prochaine course sera dans <strong>'. $d_restants .' jours</strong>, <strong>'. $H_restantes .' heures</strong>,' . ' <strong>'. $i_restantes .' minutes</strong> et <strong>'. $s_restantes .'s</strong>'; ?> 2eme SOLUTION : juste le compte a rebours <?php $annee = date('Y'); $course = mktime(8, 0, 0, 06, 26, $annee); if ($course < time()) $course = mktime(8, 0, 0, 06, 26, ++$annee); $tps_restant = $course - time(); //============ CONVERSIONS $i_restantes = $tps_restant / 60; $H_restantes = $i_restantes / 60; $d_restants = $H_restantes / 24; $s_restantes = floor($tps_restant % 60); // Secondes restantes $i_restantes = floor($i_restantes % 60); // Minutes restantes $H_restantes = floor($H_restantes % 24); // Heures restantes $d_restants = floor($d_restants); // Jours restants //================== setlocale(LC_ALL, 'fr_FR'); echo 'la prochaine course sera dans <strong>'. $d_restants .' jours</strong>, <strong>'. $H_restantes .' heures</strong>,' . ' <strong>'. $i_restantes .' minutes</strong> et <strong>'. $s_restantes .'s</strong>'; ?> 3eme SOLUTION : CODE JAVASCRIPT POUR UN COMPTEUR "DYNAMIQUE" <div id="compte_a_rebours"><noscript>Fin de l'évènement le 26 juin 2016.</noscript></div> <script type="text/javascript"> function compte_a_rebours() { var compte_a_rebours = document.getElementById("compte_a_rebours"); var date_actuelle = new Date(); var date_evenement = new Date("Jun 26 00:00:00 2016"); var total_secondes = (date_evenement - date_actuelle) / 1000; var prefixe = "Début de la course dans "; if (total_secondes < 0) { prefixe = "Première course commencée il y a "; // On modifie le préfixe si la différence est négatif total_secondes = Math.abs(total_secondes); // On ne garde que la valeur absolue } if (total_secondes > 0) { var jours = Math.floor(total_secondes / (60 * 60 * 24)); var heures = Math.floor((total_secondes - (jours * 60 * 60 * 24)) / (60 * 60)); minutes = Math.floor((total_secondes - ((jours * 60 * 60 * 24 + heures * 60 * 60))) / 60); secondes = Math.floor(total_secondes - ((jours * 60 * 60 * 24 + heures * 60 * 60 + minutes * 60))); var et = "et"; var mot_jour = "jours,"; var mot_heure = "heures,"; var mot_minute = "minutes,"; var mot_seconde = "secondes"; if (jours == 0) { jours = ''; mot_jour = ''; } else if (jours == 1) { mot_jour = "jour,"; } if (heures == 0) { heures = ''; mot_heure = ''; } else if (heures == 1) { mot_heure = "heure,"; } if (minutes == 0) { minutes = ''; mot_minute = ''; } else if (minutes == 1) { mot_minute = "minute,"; } if (secondes == 0) { secondes = ''; mot_seconde = ''; et = ''; } else if (secondes == 1) { mot_seconde = "seconde"; } if (minutes == 0 && heures == 0 && jours == 0) { et = ""; } compte_a_rebours.innerHTML = prefixe + jours + ' ' + mot_jour + ' ' + heures + ' ' + mot_heure + ' ' + minutes + ' ' + mot_minute + ' ' + et + ' ' + secondes + ' ' + mot_seconde; } else { compte_a_rebours.innerHTML = 'Début de la course dans.'; } var actualisation = setTimeout("compte_a_rebours();", 1000); } compte_a_rebours(); </script> Edité par nico38 - 03 Sep 2015 à 23:26 |
|
Un lien vers ton site tu enverras | Problème d'affichage ? ---> CTRL+F5 | Couleur des liens --> "Styles des liens"
|
|
Serval62
Newbie Depuis le: 03 Sep 2015 Status: Inactif Points: 18 |
Options des messages
Thanks(0)
|
Merci Nico38 pour la réponse mais comme je le disais, je suis une buse en programmation.
Je pense que sur le principe, le 2ème code correspond bien à ce que je cherchais mais j'aurai bien aimé quelque chose de plus intuitif (comme un nouveau bouton dans le menu d'OE qu'on pourrait cliquer glisser sur la page et où une fenêtre demanderai la date et l'heure de la prochaine course et le décompte se lancerai seul en fonction de la date du jour) Mais bon, je sais, vous allez me répondre que vous auriez aimé (moi aussi) gagner à euromillion mais qu'on a pas toujours ce qu'on veut dans la vie Alors à défaut, est-ce qu'il serait possible de me détailler le code ci-dessus pour que je le comprenne et que je sache comment éventuellement l'adapter. Merci d'avance Edité par Serval62 - 03 Sep 2015 à 23:26 |
|
nico38
Senior Member Depuis le: 18 Jan 2014 Status: Inactif Points: 3967 |
Options des messages
Thanks(0)
|
le code vert est dynamique et à la portée de n'importe qui. Un singe saurait le faire.
C'est pas de la programmation c'est juste de la lecture : 1. changer la date : Jun 26 00:00:00 2016"); : il y a mois, année et jour à modifier, j'ai mis pour le 26 juin 2016 2. changer le texte : var prefixe = "Début de la course dans "; Edité par nico38 - 03 Sep 2015 à 23:31 |
|
Un lien vers ton site tu enverras | Problème d'affichage ? ---> CTRL+F5 | Couleur des liens --> "Styles des liens"
|
|
Serval62
Newbie Depuis le: 03 Sep 2015 Status: Inactif Points: 18 |
Options des messages
Thanks(0)
|
OK, donc demain matin je me rends au zoo pour demander des explications. Encore merci pour le coup de main, je vais enfin pouvoir ajouter cet élément qui me manquait. |
|
nico38
Senior Member Depuis le: 18 Jan 2014 Status: Inactif Points: 3967 |
Options des messages
Thanks(0)
|
1. glisser/deposer bloc de code Visuel
2. copier coller le code VERT 3. fin exemple Edité par nico38 - 04 Sep 2015 à 00:01 |
|
Un lien vers ton site tu enverras | Problème d'affichage ? ---> CTRL+F5 | Couleur des liens --> "Styles des liens"
|
|
Serval62
Newbie Depuis le: 03 Sep 2015 Status: Inactif Points: 18 |
Options des messages
Thanks(0)
|
C'est bien ce que j'avais fait et ça fonctionne nickel.
Reste plus qu'à modifier la mise en page (police, couleur, etc...) et j'aurai exactement ce que je voulais. Je teste demain matin. Je posterai le lien vers le site dans la bonne rubrique dès sa mise en ligne (prévue la semaine prochaine) pour avoir les critiques me permettant de l'améliorer |
|
nico38
Senior Member Depuis le: 18 Jan 2014 Status: Inactif Points: 3967 |
Options des messages
Thanks(0)
|
ps : la mise en forme se fait comme n'importe quel autre élément par clic gauche c'est simple
|
|
Un lien vers ton site tu enverras | Problème d'affichage ? ---> CTRL+F5 | Couleur des liens --> "Styles des liens"
|
|
nico38
Senior Member Depuis le: 18 Jan 2014 Status: Inactif Points: 3967 |
Options des messages
Thanks(0)
|
désolé j'avais pas lu tout votre message, alors pour le détail :
1. prefixe = "Première course commencée il y a" : le texte en rouge (modifiable) est celui qui apparaît après que l'évènement soit passé 2. var date_evenement = new Date("Jun 26 00:00:00 2016") : Mois jour heure:minute:secondes année (Les mois sont les 3premieres lettre des mois anglais : Jul, Jun....) 3. compte_a_rebours.innerHTML = "Début de la course dans.'; le texte en rouge est celui qui apparaît avant que l'évènement ne soit arrivé (à zéro). (Ne pas enlever le point) Edité par nico38 - 04 Sep 2015 à 18:38 |
|
Un lien vers ton site tu enverras | Problème d'affichage ? ---> CTRL+F5 | Couleur des liens --> "Styles des liens"
|
|
Serval62
Newbie Depuis le: 03 Sep 2015 Status: Inactif Points: 18 |
Options des messages
Thanks(0)
|
Bonjour à tous.
Tout d'abord, je tiens à vous remercier pour votre aide aussi rapide qu'efficace. L'hébergement de mon site ayant été validé, je me permet de donner le lien ( http://www.lacanadianrace.fr ) pour me donner d'éventuels points à améliorer. A ce propos, j'ai un problème d'affichage sur téléphone portable avec des textes qui se chevauchent. J'aimerai que le site s'adapte à la résolution de l'affichage du navigateur (mode responsive si j'ai bien compris). Visiblement j'ai réussi avec le "fond d'écran" mais pas avec le reste. J'ai bien trouvé ça http://www.commentcamarche.net/faq/4613-webmaster-adapter-un-site-a-toutes-les-resolutions mais je ne sais pas trop où insérer body{width:100%;} Edité par Serval62 - 13 Sep 2015 à 12:37 |
|
Répondre | Page 12> |
Tweet
|
Aller au Forum | Permissions du forum Vous ne pouvez pas écrire un nouveau Sujet Vous ne pouvez pas répondre aux Sujets Vous ne pouvez pas effacer vos messages Vous ne pouvez pas éditer vos messages Vous ne pouvez pas créer des sondages Vous ne pouvez pas voter dans les sondages |