Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher une image en fonction de la saison

    7 octobre 2018 à 14:36:13

    Bonjour,

    Je travaille actuellement sur un projet dans lequel il me faut faire apparaitre une image différente en fonction de la saison automatiquement.

    j'ai donc écrit le script suivant :

    Mon problème est que nous sommes en automne et que cela m'affiche l'image de l'été.

    j'ai trouvé que la fonction "ladate<dateautomne" était valide car elle ne prenait en compte que le jour et pas le mois nous sommes le 7 donc 7<20 fonction valide.

    j'ai donc trouvé ou était le problème mais je ne trouve pas de solution pour y remédier une idée ?

    je vous remercie par avance et espère avoir été clair dans mes explications

    Bien a vous,

    Julien

    function saison()    {
              var today = new Date();
              var ladate=Date.parse(today);
              var lannee = today.getFullYear();
              var dateprintemps = Date.parse(new Date(lannee, 3, 20));
              var dateete = Date.parse(new Date(lannee, 6, 21));
              var dateautomne = Date.parse(new Date(lannee, 9, 20));
              var datehiver = Date.parse(new Date (lannee, 12, 21));
           
               if(ladate>=dateprintemps && ladate<dateete)
                   {
                       img5.style.display = 'inline';
         img6.style.display = 'none';
         img7.style.display = 'none';
         img8.style.display = 'none';
                   }
               else if (ladate>=dateete && ladate<dateautomne)
                   {
                       img5.style.display = 'none';
         img6.style.display = 'inline';
         img7.style.display = 'none';
         img8.style.display = 'none';
                   }
               else if (ladate>= dateautomne && ladate<datehiver)
                  {
                       img5.style.display = 'none';
         img6.style.display = 'none';
         img7.style.display = 'inline';
         img8.style.display = 'none';
                   }
               else if (ladate>=datehiver || ladate<dateprintemps)
                   {
                       img5.style.display = 'none';
         img6.style.display = 'none';
         img7.style.display = 'none';
         img8.style.display = 'inline';
                   }

         img5.src = 'PRINTEMPS.png';
                      img6.src = 'ETE.png';
                      img7.src = 'AUTOMNE.png';
        img8.src = 'HIVER.png';
        
          }  
        setInterval(saison, 1000);
        saison();

    • Partager sur Facebook
    • Partager sur Twitter
      7 octobre 2018 à 18:52:38

      Bonjour JulienDeltort,

      Je pense que déjà que tes dates de saisons sont fausses, elle sont décalées de +1 mois

      Janvier a pour index 0 en ce qui concerne les mois

      https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date

      dateprintemps = Date 2018-04-19T22:00:00.000Z
      dateete = Date 2018-07-20T22:00:00.000Z
      dateautomne = Date 2018-10-19T22:00:00.000Z
      datehiver = Date 2019-01-20T23:00:00.000Z

      Juste une question pourquoi tu fais un setInterval

      -
      Edité par AliasDmc 7 octobre 2018 à 18:55:56

      • Partager sur Facebook
      • Partager sur Twitter
      Découvrez les Css avec la zonecss.fr
        7 octobre 2018 à 18:56:11

        Bonjour,

        Merci d'utiliser la mise en forme de code Image

        Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Image de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: c;">Votre code ici</pre>.

        • Partager sur Facebook
        • Partager sur Twitter

        Pas d'aide concernant le code par MP, le forum est là pour ça :)

          10 octobre 2018 à 21:40:35

          Bonjour,

          Effectivement en remplaçant le 9 par 8 dans la date cela fonctionne convenablement merci beaucoup ! 

          je fais sertinterval car c'est une page qui est sensé rester ouverte h24 et cela permet de l'actualiser pour qu'elle change automatiquement les informations sans avoir à y toucher.

          je ne suis pas un expert mais c'est ce que j'ai compris du moins ^^

          Merci beaucoup en tout cas !

          • Partager sur Facebook
          • Partager sur Twitter
            10 octobre 2018 à 22:02:10

            Et si tu veux t'affranchir de ce genre de calculs louches (parce que, sérieux, les mois qui commencent à 0 - mais pas les jours -, à quoi pensaient les créateurices de JS sur ce coup…?), tu peux utiliser la bibliothèque moment.js, qui fait très bien son boulot.
            • Partager sur Facebook
            • Partager sur Twitter

            Pas d'aide concernant le code par MP, le forum est là pour ça :)

            Afficher une image en fonction de la saison

            × 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.
            • Editeur
            • Markdown