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 :

Compte � rebours + date serveur


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    266
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 266
    Par d�faut Compte � rebours + date serveur
    Salut !

    Voil� mon probl�me. Je souhaiterai faire un compte � rebours � partir de la date/heure du serveur et une date dans le futur.

    J'ai bien essay� un truc mais l'heure du serveur n'est remont�e qu'une fois et pas dans la boucle (setTimeout):

    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
    <span id="timer"></span>
     
    <script type="text/JavaScript">
     
     
    var timer=document.getElementById("timer");
     
    function Rebour() {
    var date1 = new Date("<?php echo date('M d H:i:s Y');?>");
    var date2 = new Date ("Oct 1 00:00:00 2020");
    var sec = (date2 - date1) / 1000;
    var n = 24 * 3600;
    if (sec > 0) {
    j = Math.floor (sec / n);
    h = Math.floor ((sec - (j * n)) / 3600);
    mn = Math.floor ((sec - ((j * n + h * 3600))) / 60);
    sec = Math.floor (sec - ((j * n + h * 3600 + mn * 60)));
    timer.innerHTML = "Temps restant : " + j +" j "+ h +" h "+ mn +" min "+ sec + " s ";
    window.status = "Temps restant : " + j +" j "+ h +" h "+ mn +" min "+ sec + " s ";
    }
    tRebour=setTimeout ("Rebour();", 1000);
    }
     
    Rebour();
     
    </script>
    Pourquoi il ne me r�cup�re pas la date du serveur � chaque fois ???

    Merci d'avance.
    Si vous avez une solution.

    Coincoin22

  2. #2
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    D�tails du profil
    Informations personnelles :
    �ge : 53
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par d�faut
    salut,

    le plus simple est de passer des millisecondes a Date (U * 1000) !
    sinon faut remplir tous les parametres :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    new Date(year, month, day, hours, minutes, seconds, milliseconds);
    sinon renseigne toi sur ce que dois etre la date sous forme de chaine mais je suis presque sur que tu as fait des erreurs (comme zapper une virgule) !
    voir ici : https://developer.mozilla.org/en-US/...cts/Date/Parse

  3. #3
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    Citation Envoy� par coincoin22 Voir le message
    Salut !

    Pourquoi il ne me r�cup�re pas la date du serveur � chaque fois ???
    Parce que le PHP remplace le code par la valeur de la date une seule fois, au moment de l'envoyer au client. Regarde le code de la page g�n�r�e (clic droit afficher le code source sur ta page) pour t'en rendre compte.

    S'il faut absolument la date du serveur, �a signifie qu'il faut faire des appels asynchrones toutes les secondes (AJAX). C'est plut�t gourmand et pas vraiment n�cessaire. Les fonctions de d�compte en Javascript sont suffisamment pr�cises pour que tu fasses tourner ton script une heure sans d�synchronisation.

    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
    <span id="timer"></span>
     
    <script type="text/JavaScript">
     
    var timer=document.getElementById("timer");
    var date1 = (new Date("<?php echo date('M d H:i:s Y');?>")).getTime();
    var date2 = (new Date ("Oct 1 00:00:00 2020")).getTime();
     
    function Rebour() {
     
    var sec = (date2 - date1) / 1000;
    var n = 24 * 3600;
    if (sec > 0) {
    j = Math.floor (sec / n);
    h = Math.floor ((sec - (j * n)) / 3600);
    mn = Math.floor ((sec - ((j * n + h * 3600))) / 60);
    sec = Math.floor (sec - ((j * n + h * 3600 + mn * 60)));
    timer.innerHTML = "Temps restant : " + j +" j "+ h +" h "+ mn +" min "+ sec + " s ";
    window.status = "Temps restant : " + j +" j "+ h +" h "+ mn +" min "+ sec + " s ";
    date1 += 1000;
    }
    var tRebour=setTimeout ("Rebour();", 1000);
    }
     
    Rebour();
     
    </script>

Discussions similaires

  1. R�ponses: 0
    Dernier message: 26/11/2014, 17h44
  2. [XL-2003] Compte � rebours entre deux dates
    Par DrBlob dans le forum Excel
    R�ponses: 15
    Dernier message: 01/06/2009, 19h18
  3. [Dates] Compte � rebours chaque mois
    Par isa150183 dans le forum Langage
    R�ponses: 1
    Dernier message: 01/06/2007, 19h03
  4. Heur et date serveur sql
    Par adgabd dans le forum MS SQL Server
    R�ponses: 7
    Dernier message: 01/12/2003, 16h16

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