IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Différencier la durée d'affichage.


Sujet :

JavaScript

  1. #1
    Membre habitué
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2012
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2012
    Messages : 142
    Points : 149
    Points
    149
    Par défaut Différencier la durée d'affichage.
    Bonjour à tous,
    maintenant que les différents codes fonctionnent à merveille grâce à vous .
    je voudrais encore l'améliorer.
    J'ai 3 constantes
    Date déces,Date de création, Date de dissolution
    j'ai donc rajouté une durée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    const imgDatas = {
    //01-06-1947 LV Francois décès
        "1947-01-06": {
        img:  "https://www.unc-35760.fr/Images_Externes/Commando_françois_Gerbe.gif",
        href: "https://memorial-national-des-marins.fr/c/3469-commando-francois",
        duree: 2
      },
      //05-01-1947 Création Cdo Francois 
        "1947-05-01": {    img:  "https://www.unc-35760.fr/Images_Externes/Commando_françois_Gerbe.gif",
        href: "https://memorial-national-des-marins.fr/c/3469-commando-francois",
        duree: 5
      },
      //28-05-1951 Commando Francois combat de Ninh Binh et dissolution
        "1951-05-28": {
        img:  "https://www.unc-35760.fr/Images_Externes/Commando_françois_Gerbe.gif",
        href: "https://memorial-national-des-marins.fr/c/3469-commando-francois",
        duree: 30
      },
      };
    Cela me semble bon ?

    Je veux récupérer la durée pour un calcul mais rien ne se passe
    j'ai bien mis les constantes de date avant le calcul...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    document.addEventListener("DOMContentLoaded", function() {
      function testDate(dateRef) {
        const msPerDay = 86400000;
        const msDelay = msPerDay * imgDatas[date].duree;
     
        // date du jour sans les h:m:s
        const toDay = new Date();
        toDay.setHours(0, 0, 0, 0);
        // date décés sans h:m:s    
        const dDeces = new Date(dateRef);
        dDeces.setHours(0, 0, 0, 0);
     
        // mise à la même année pour test
        dDeces.setFullYear(toDay.getFullYear());
     
        // récup. ms pour test
        const timeDay = toDay.getTime();
        const timeDeces = dDeces.getTime();
        const timeMax = timeDeces + msDelay;
     
        return (timeDeces <= timeDay && timeDay < timeMax);
      }
    le calcul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const msDelay = msPerDay * imgDatas[date].delai;
    ne donne rien alors qu'avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const msDelay = msPerDay * 5;
    Tout est ok
    Qu'est qui ne va pas dans ma constante.
    merci de l'aide
    Obturatix

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 056
    Points : 44 578
    Points
    44 578
    Par défaut
    Bonjour,
    en fait il te suffit de passer en paramètre la valeur de la durée en jours

    La fonction devient donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    function testDate(dateRef, duree) {
      const msPerDay = 86400000;
      const msDelay = msPerDay * duree;
     
      // date du jour sans les h:m:s
      const toDay = new Date();
      toDay.setHours(0, 0, 0, 0);
      // date décés sans h:m:s    
      const dDeces = new Date(dateRef);
      dDeces.setHours(0, 0, 0, 0);
     
      // mise à la même année pour test
      dDeces.setFullYear(toDay.getFullYear());
     
      // récup. ms pour test
      const timeDay = toDay.getTime();
      const timeDeces = dDeces.getTime();
      const timeMax = timeDeces + msDelay;
     
      return (timeDeces <= timeDay && timeDay < timeMax);
    }
    et lors de l'appel écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (testDate(date, imgDatas[date].duree)) { // passage en paramètre de la durée
      oImg.src = imgDatas[date].img;
      oLien.href = imgDatas[date].href;
    }
    [Edit]
    d'un côté tu écris imgDatas[date].delai alors que dans l'objet tu as duree !

  3. #3
    Membre habitué
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2012
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2012
    Messages : 142
    Points : 149
    Points
    149
    Par défaut
    Je pense que là j'ai fait le tour.
    Merci à tous et à NoSmoking pour l'aide .
    vous êtes la Classe!!!
    Bonne journée
    Cordialement
    Obturatix
    Biensur c'est résolu encore une fois rapîdement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment augmenter la durée d'affichage d'un Hint ?
    Par Nicolas Coolman dans le forum Débuter
    Réponses: 2
    Dernier message: 11/09/2008, 15h29
  2. la durée d'affichage d'un formulair
    Par lista-oujda dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/05/2008, 21h07
  3. Duree d'affichage d'une Splash screen
    Par younes10 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/04/2008, 11h32
  4. [VB.Net 2.0/NotifyIcon] Pb de durée d'affichage d'une infobulle
    Par exclusif dans le forum Windows Forms
    Réponses: 10
    Dernier message: 19/08/2006, 22h41
  5. Comment modifier la durée d'affichage du hint ?
    Par OutOfRange dans le forum Composants VCL
    Réponses: 3
    Dernier message: 29/07/2005, 11h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo