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 :

Fonction de Compte à rebours JS


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 50
    Par défaut Fonction de Compte à rebours JS
    Bonjour,

    Actuellement je bloque complètement dans mon developpement à cause de JS.

    J'ai trouvé et modifier un script (pour l'adapté à mon utilisation) un script de compte à rebourd à partir de secondes "time" (php).

    J'ai une valeure time (par exemple un time + 2 days), et en faite le JS m'affiche les jours / heures / minutes et secondes restante en temps réel.


    Il marche parfaitement, mais en solo, cad : je ne peux pas faire affiché le script 2x (ce n'est pas une fonction).

    J'aimerais savoir si quelqu'un connais un script JS (je comprends le javascript mais les seuls scripts que je développe est du jQuery et je ne suis que novice), qui contient une FONCTION qui permet d'affiché un compteur sur une div et avec un time en secondes.

    (ex : function compteur(div,time) { } )


    Merci de votre aide.

  2. #2
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Heu... je ne suis pas sûr d'avoir compris certains passages confus mais : montre toujours ton js on t'aidera à isoler le code à mettre en fonction ^^

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 50
    Par défaut
    Bonjour,


    Okay


    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
     
    <script language="JavaScript">
     
    // la date à partir de laquelle on compte
    var cible = new Date("<?php echo date("F d, Y H:i:s",$row['produit_datefin']); ?>");
    // nombre de millisecondes par jour, heure, minute et seconde
    var mms_jour = 24 * 60 * 60 * 1000;
    var mms_heure = 60 * 60 * 1000;
    var mms_minute = 60 * 1000;
    var mms_seconde = 1000;
     
    function decompte() {
     
    // la date courante
    var aujourdhui = new Date();
     
    // on cr&eacute;e les variables qui accueilleront les diff&eacute;rences entre aujourd'hui et la date à atteindre
    var change_j = -1;
    var change_h = -1;
    var change_m = -1;
     
    // le total de millisecondes de diff&eacute;rences
    var diff_mms = cible.getTime() - aujourdhui.getTime();
     
    // pareil pour les jours
    diff_jours = Math.floor(diff_mms / mms_jour);
    diff_mms -= diff_jours * mms_jour;
     
    // pour les heures
    diff_heures = Math.floor(diff_mms / mms_heure);
    diff_mms -= diff_heures * mms_heure;
     
    // les... minutes, bravo ;-)
    diff_minutes = Math.floor(diff_mms / mms_minute);
    diff_mms -= diff_minutes * mms_minute;
     
    // les secondes, ce qui reste en fait.
    var diff_secondes = Math.floor(diff_mms / mms_seconde);
     
     
    // on affecte nos r&eacute;sultats aux champs du formulaire
    document.getElementById("jours").innerHTML = diff_jours;
    document.getElementById("heures").innerHTML  = diff_heures;
    document.getElementById("minutes").innerHTML  = diff_minutes;
    document.getElementById("secondes").innerHTML = diff_secondes;
     
     
    // on relance la fonction pour actualiser à la seconde
    setTimeout("decompte()",1000);
    }
    </script> 
     
     
    <body  onLoad="decompte()">
     
    <div id="jours"></div><div id="heures"></div><div id="minutes"></div><div id="secondes"></div>
    Voila, j'aimerais bien l'isoler et avoir la possibilité de donné en valeure une "ID" de div ainsi que les secondes à calculé

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script type="text/javascript">
    function decompte(id)
    {
    .......
    var madate;
    madate=diff_jours+" "+diff_heures+" "+diff_minutes+" "+diff_secondes;
    document.getElementById(id).innerHTML=madate;
    ....
    }

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 50
    Par défaut
    Bonjour,

    Merci pour ta réponse.
    Mais je souhaiterais pouvoir "indiqué" le time en secondes à l'appel de la fonction ( decompte(id, time) ), comment faire?

    J'ai également pas trop compris l'histoire des "..." avant et après le script. Je garde quoi de mon ancien script JS (car il faut que le temps s'actualise chaque secondes) ?

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    les '...' sont les autres codes de ton script.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function decompte(id,temps)
    {
    .......
    var madate;
    madate=diff_jours+" "+diff_heures+" "+diff_minutes+" "+diff_secondes;
    document.getElementById(id).innerHTML=madate;
    setTimeout("decompte('id','temps')",(temps*1000));
    }
    temps c'est l'intervale de temps d'actualisation en seconde que tu veux mettre en paramètre.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 50
    Par défaut
    Humm, j'ai toujours pas réussi, c'est pas manque d'avoir essayé :p

    Voici mon code "trafiquer" :

    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
    <script language="javascript">
    function decompte(id,temps)
    {
    // la date à partir de laquelle on compte
    var cible = new Date(temps);
    // nombre de millisecondes par jour, heure, minute et seconde
    var mms_jour = 24 * 60 * 60 * 1000;
    var mms_heure = 60 * 60 * 1000;
    var mms_minute = 60 * 1000;
    var mms_seconde = 1000;
     
    // la date courante
    var aujourdhui = new Date();
     
    // on cr&eacute;e les variables qui accueilleront les diff&eacute;rences entre aujourd'hui et la date à atteindre
    var change_j = -1;
    var change_h = -1;
    var change_m = -1;
     
    // le total de millisecondes de diff&eacute;rences
    var diff_mms = cible.getTime() - aujourdhui.getTime();
     
    // pareil pour les jours
    diff_jours = Math.floor(diff_mms / mms_jour);
    diff_mms -= diff_jours * mms_jour;
     
    // pour les heures
    diff_heures = Math.floor(diff_mms / mms_heure);
    diff_mms -= diff_heures * mms_heure;
     
    // les... minutes, bravo ;-)
    diff_minutes = Math.floor(diff_mms / mms_minute);
    diff_mms -= diff_minutes * mms_minute;
     
    // les secondes, ce qui reste en fait.
    var diff_secondes = Math.floor(diff_mms / mms_seconde);	
     
     
     
    var madate;
    madate=diff_jours+" "+diff_heures+" "+diff_minutes+" "+diff_secondes;
    document.getElementById("span#time_" + id).innerHTML=madate;
    setTimeout("decompte('id','temps')",(temps*1000));
    }
    </script>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php $datee = date("F d, Y H:i:s"); ?>
    <script language="javascript">
    decompte(<?php echo $count; ?>,<?php echo $datee; ?>); 
    </script>
     
    <span id="time_<?php echo $count; ?>">0</span>

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("time_" + id).innerHTML=madate;

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 50
    Par défaut
    Bonjour,

    Merci de votre réponse.
    Bien vue, j'ai fait un mix entre les $.(type#id) de jquery et le JS :p !

    Mais cela ne fonctionne toujours pas =( .

    Rappel du code utiliser :


    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
    function decompte(id,temps)
    {
    // la date à partir de laquelle on compte
    var cible = new Date(temps);
    // nombre de millisecondes par jour, heure, minute et seconde
    var mms_jour = 24 * 60 * 60 * 1000;
    var mms_heure = 60 * 60 * 1000;
    var mms_minute = 60 * 1000;
    var mms_seconde = 1000;
     
    // la date courante
    var aujourdhui = new Date();
     
    // on cr&eacute;e les variables qui accueilleront les diff&eacute;rences entre aujourd'hui et la date à atteindre
    var change_j = -1;
    var change_h = -1;
    var change_m = -1;
     
    // le total de millisecondes de diff&eacute;rences
    var diff_mms = cible.getTime() - aujourdhui.getTime();
     
    // pareil pour les jours
    diff_jours = Math.floor(diff_mms / mms_jour);
    diff_mms -= diff_jours * mms_jour;
     
    // pour les heures
    diff_heures = Math.floor(diff_mms / mms_heure);
    diff_mms -= diff_heures * mms_heure;
     
    // les... minutes, bravo ;-)
    diff_minutes = Math.floor(diff_mms / mms_minute);
    diff_mms -= diff_minutes * mms_minute;
     
    // les secondes, ce qui reste en fait.
    var diff_secondes = Math.floor(diff_mms / mms_seconde);	
     
     
     
    var madate;
    madate=diff_jours+" "+diff_heures+" "+diff_minutes+" "+diff_secondes;
    document.getElementById("time_" + id).innerHTML=madate;
    setTimeout("decompte('id','temps')",(temps*1000));
    }
    Puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script language="javascript">
    <?php $datee = date("F d, Y H:i:s"); ?>
    decompte(<?php echo $count; ?>,<?php echo $datee; ?>); // Feb 4 19:20:00:2003   Mois jour h:min:sec annee
    </script><span id=time_<?php echo $id; ?>>x</span>
    J'ai tester l'id, elle est correctement attribué.

  10. #10
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    J'ai mis la paramètre temps pour la durée de rafraichissement en seconde et non pour une date donnée. Tu dois ajouter une autre paramètre pour affecter à la variable cible.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 50
    Par défaut
    Bonjour,

    à ce que j'ai compris, c'est donc plutot :

    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
    function decompte(id,time,temps)
    {
    // la date à partir de laquelle on compte
    var cible = new Date(time);
    // nombre de millisecondes par jour, heure, minute et seconde
    var mms_jour = 24 * 60 * 60 * 1000;
    var mms_heure = 60 * 60 * 1000;
    var mms_minute = 60 * 1000;
    var mms_seconde = 1000;
     
    // la date courante
    var aujourdhui = new Date();
     
    // on cr&eacute;e les variables qui accueilleront les diff&eacute;rences entre aujourd'hui et la date à atteindre
    var change_j = -1;
    var change_h = -1;
    var change_m = -1;
     
    // le total de millisecondes de diff&eacute;rences
    var diff_mms = cible.getTime() - aujourdhui.getTime();
     
    // pareil pour les jours
    diff_jours = Math.floor(diff_mms / mms_jour);
    diff_mms -= diff_jours * mms_jour;
     
    // pour les heures
    diff_heures = Math.floor(diff_mms / mms_heure);
    diff_mms -= diff_heures * mms_heure;
     
    // les... minutes, bravo ;-)
    diff_minutes = Math.floor(diff_mms / mms_minute);
    diff_mms -= diff_minutes * mms_minute;
     
    // les secondes, ce qui reste en fait.
    var diff_secondes = Math.floor(diff_mms / mms_seconde);	
     
     
     
    var madate;
    madate=diff_jours+" "+diff_heures+" "+diff_minutes+" "+diff_secondes;
    document.getElementById("time_" + id).innerHTML=madate;
    setTimeout("decompte('id','temps')",(temps*1000));
    }

    J'ai modifier également mon code d'appel, mais toujours rien =(

  12. #12
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setTimeout("decompte('id','time','temps')",(temps*1000));
    Tu peut voir un POST résolue sur.
    http://www.developpez.net/forums/d69...ompte-rebours/

Discussions similaires

  1. [timer] Compte à rebours pour redirection !
    Par Raideman dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/12/2005, 20h07
  2. Compte à rebours
    Par Anduriel dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 29/12/2005, 20h12
  3. compte à rebours
    Par Datord dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 17/11/2005, 21h22
  4. compte à rebours
    Par etoile1506 dans le forum C
    Réponses: 10
    Dernier message: 27/10/2005, 15h20
  5. Compte à rebours trop rapide
    Par Anduriel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/06/2005, 20h57

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