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 :

Compteur de temps pour vente flash


Sujet :

JavaScript

  1. #41
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Points : 43
    Points
    43
    Par défaut
    Merci pour ton aide précieuse. Tout fonctionne parfaitement !
    En toute honnêteté j'y serai jamais arrivé seul, c'était trop complexe pour mon niveau.
    Je vais attendre avant de mettre sujet résolu pour voir si après les décomptes le compteur reste à zéro et qu'on ne puisse plus commander le produit. J 'ai encore beaucoup de travail sur mon site pour corriger les petits bugs et les fonctionnalités qui n'avaient jamais été terminées. J'ai déjà réussi beaucoup de corrections tout seul et j'ai beaucoup appris mais il y a encore du chemin à faire sur les fonctions.

    Encore merci.

  2. #42
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 110
    Points : 44 929
    Points
    44 929
    Par défaut
    Je vais attendre avant de mettre sujet résolu pour voir ...
    l y a peu de chance que le prochain problème ait un rapport avec le contenu de cette discussion, autant passer cette discussion en résolu et en ouvrir une autre à l'occasion.

  3. #43
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Points : 43
    Points
    43
    Par défaut
    Je réouvre ce post car le compteur continue en négatif. J'aimerai qu'il s arrête à zéro.

    J'ai tenté ce code mais ça marche pas non plus :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    function initCompteur( t1, t2) {
      var end = new Date(t1);
      var cur = new Date(t2);
      var loc = new Date();
      end = end.getTime();
      cur = cur.getTime();
      loc = loc.getTime();
      var temp = cur - loc;
      end = end - temp;
      // affichage immédiat
      afficheCompteur( end);    // ex function cur_time
      // rappel de la fonction toutes les 1s
      iTimer = setInterval(function () {
        afficheCompteur( end, t1, t2);    // ex function cur_time
      }, 1000);
    }
    function afficheCompteur( end, t1, t2) {
      var end = new Date(t1);
      var cur = new Date(t2);
      var loc = new Date();
      end = end.getTime();
      cur = cur.getTime();
      loc = loc.getTime();
     
      var diff = end - loc;
      var dd = Math.floor(diff / (1000 * 60 * 60 * 24));
      var hh = Math.floor((diff - (1000 * 60 * 60 * 24 * dd)) / (1000 * 60 * 60));
      var mm = Math.floor((diff - (1000 * 60 * 60 * 24 * dd) - (1000 * 60 * 60 * hh)) / (1000 * 60));
      var ss = Math.floor((diff - (1000 * 60 * 60 * 24 * dd) - (1000 * 60 * 60 * hh) - (1000 * 60 * mm)) / (1000));
      if (dd < 10) {
        dd = '0' + dd;
      }
      if (hh < 10) {
        hh = '0' + hh;
      }
      if (mm < 10) {
        mm = '0' + mm;
      }
      if (ss < 10) {
        ss = '0' + ss;
      }
      // on peut faire un SI diff <= 0 ALORS
      // if (dd == 00 && hh == 00 && mm == 00 && ss == 00) {
        // clearInterval( iTimer);
      // }
      if (end < cur){    // ou alors (diff<0) 
    	document.getElementById('update_day').innerHTML == 0;
    	document.getElementById('update_hour').innerHTML  == 0;
    	document.getElementById('update_minute').innerHTML  == 0;
    	document.getElementById('update_second').innerHTML == 0;
    }
    else {
      document.getElementById('update_day').innerHTML = dd;
      document.getElementById('update_hour').innerHTML = hh;
      document.getElementById('update_minute').innerHTML = mm;
      document.getElementById('update_second').innerHTML = ss;
     } 
     
     
    }
    var iTimer;
    // var dateFin = "<?php echo str_replace(' ', 'T', $project['end_date']) ?>"; // récupération det échéance et mise au format
     
     
    var dateFin = new Date(<?php echo $date ?>); // Date échéance
     
     
    var dateDeb = new Date();                   // date du jour
    // appel de la fonction d'initialisation
    initCompteur( dateFin, dateDeb);            // la fonction a été renommée

  4. #44
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 110
    Points : 44 929
    Points
    44 929
    Par défaut
    Tu as la solution ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      // on peut faire un SI diff <= 0 ALORS
      // if (dd == 00 && hh == 00 && mm == 00 && ss == 00) {
        // clearInterval( iTimer);
      // }
    ne pas oublier d’arrêter le timer

  5. #45
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Points : 43
    Points
    43
    Par défaut
    J'ai essayé ça mais ça fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (dd == 00 && hh == 00 && mm == 00 && ss == 00) {
    clearInterval( iTimer);
    alert("Fin de l'offre"); // message d'alerte
    return; // on stop tout
     }
    DU coup j'ai essayé ça pour tester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (diff < 0 ) {
    	       clearInterval( iTimer ); // on arrête le décompte une fois que c'est terminé
    	       initCompteur.innerHTML = 'L'offre est terminée';
      document.getElementById('update_day').innerHTML = '00';
      document.getElementById('update_hour').innerHTML = '00';
      document.getElementById('update_minute').innerHTML = '00';
      document.getElementById('update_second').innerHTML = '00'; 
    	       return; // on stop tout 
      }
    Alors là le compteur affiche bien 00:00:00:00 mais j'aimerai le remplacer par le message "L'offre est terminée"

  6. #46
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 110
    Points : 44 929
    Points
    44 929
    Par défaut
    J'ai essayé ça mais ça fonctionne pas.
    mais as tu essayé ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if( diff <= 0){
      // if (dd == 00 && hh == 00 && mm == 00 && ss == 00) {
      clearInterval( iTimer);
    }

  7. #47
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Points : 43
    Points
    43
    Par défaut
    regarde mon post d'avant. J'ai ajouté les innerhtml pour que le compteur affiche des 00:00:00:00 sinon il affichait seulement les séparations :::
    Le return est indispensable, sans le return le compte à rebours continue en négatif et avec le return le compteur reste à zéro. J'avoue que je ne comprend pas bien pourquoi mais ça marche

    J'ai ajouté que "la vente est terminée" en ajoutant dans le php au dessus du script un id='close'

    donc voilà le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (diff <= 0 ) {
      clearInterval( iTimer ); // on arrête le décompte une fois que c'est terminé
      document.getElementById('close').innerHTML = 'Cette offre est terminée';	   
      document.getElementById('update_day').innerHTML = '00';
      document.getElementById('update_hour').innerHTML = '00';
      document.getElementById('update_minute').innerHTML = '00';
      document.getElementById('update_second').innerHTML = '00'; 
      return; // on stop tout 
      }
    Maintenant tout semble fonctionner, merci pour ton aide

  8. #48
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 110
    Points : 44 929
    Points
    44 929
    Par défaut
    Mais j'aimerai ajouter que "la vente est terminée"
    très bien mais où est la difficulté que tu rencontres pour le faire ?

    On notera toutefois qu'il faut échapper les caractères d'échappement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    initCompteur.innerHTML = 'L\'offre est terminée';
    et que le nom de variable initCompteur est mal choisi, s'agissant déjà du nom d'une fonction.

  9. #49
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2012
    Messages : 170
    Points : 43
    Points
    43
    Par défaut
    nos post se sont croisés. Regarde mon post d avant.

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Compteur pour jeux flash
    Par jers79 dans le forum ActionScript 3
    Réponses: 4
    Dernier message: 30/10/2012, 15h56
  2. Le Kindle, meilleure vente de tous les temps pour Amazon
    Par Gordon Fowler dans le forum Hardware
    Réponses: 3
    Dernier message: 29/12/2010, 12h53
  3. IIS prend trop de temps pour démarrer?
    Par Gabrielly dans le forum Autres Logiciels
    Réponses: 10
    Dernier message: 22/08/2005, 15h36
  4. Réponses: 1
    Dernier message: 05/07/2005, 18h07
  5. [C#] Creer un compteur de temps
    Par baddounet dans le forum Windows Forms
    Réponses: 4
    Dernier message: 03/03/2005, 17h04

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