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 :

soucis avec getTime


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juin 2005
    Messages : 110
    Par défaut soucis avec getTime
    Bonjour

    c la premiere fois que j'écris du javascript et je voudrais en fait mettre sur mon site un compteur de jours jusqu'au 12 avril 2006.

    J'ai trouvé une petite fonction sur le net utilisant la méthode getTime mais elle se plante.

    Apparemment getTime renvoie le nombre de milliseconde ecoulées depuis le 1er janvier 1970. Idéal pour ce que je veux faire puisqu'il suffit de soustraire et on arrive facilement au résultat mais il me dit par exemple 8 jour jusqu'au 12 janvier, c'est ok. Par contre il dit 36 jours jusqu'au 12 février, c'est pas du tout ok !!!

    Bon voici le code il est très court :
    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
     
    <HTML>
    <HEAD>
    </HEAD>
    <BODY>
    <SCRIPT LANGUAGE="JavaScript">
     
     
    <!-- Begin
    var date = new Date(2003,05,11);
    var description = date.getDate()+"-"+date.getMonth()+"-"+date.getFullYear();
    var now = new Date();
    var diff = Math.floor( (date.getTime()-now.getTime())/(1000*60*60*24)-30);
    document.write("<center><h3>")
    if (diff > 1) {
    document.write("Il reste "+diff + " jours avant le " + description);
    }
    else if (diff == 1) {
    document.write("Demain c'est le " + description);
    }
    else if (diff == 0) {
    document.write("Aujourd'hui nous sommes le " + description);
    }
    else {
    document.write("");
    }
    document.write("</h3></center>");
    // End -->
    </script>
     
     
     
    </BODY>
    </HTML>
    merci pour votre aide !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 53
    Par défaut
    Salut,

    Pourquoi tu retranches 30 dans ton calcul ?
    Enlève le et ça ira déjà un peu mieux...

    == edit
    Pour être plus juste aussi, il me semble qu'il vaut mieux faire un ceil...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var diff = Math.ceil( (date.getTime()-now.getTime())/(1000*60*60*24));

    Bonnes fêtes à tous

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juin 2005
    Messages : 110
    Par défaut
    oui je ne comprenais pas non plus l'utilité du 30. J'ai essayé de l'enlever mais en fait oui il sert. Par exemple entre aujourd'hui et le 12.04 il y a 98 jours. Avec le 30 il me dit 97, erreur d'un jour. Sans le 30 il me dit 127 jours.
    Mais je ne comprends pas du tout pourquoi !

    merci en tout cas or la suggestion je vais tester le ceil

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Tu obtiens 127 jours car les mois sont numérotés de 0 à 11, donc, pour le 12 avril 2006 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var date = new Date(2006 , 3 , 12);

  5. #5
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par jeca
    Tu obtiens 127 jours car les mois sont numérotés de 0 à 11, donc, pour le 12 avril 2006 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var date = new Date(2006 , 3 , 12);
    +1

    Le -30 servait à recifier cela, mais de façon fort brutale et peu subtile.

    Fait un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var diff = Math.ceil( (date.getTime()-now.getTime())/(1000*60*60*24));
    en gardant bien en tete que les mois commencent à 0, et ça marchera à coup sûr.

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

Discussions similaires

  1. Soucis avec Date (et getTime)
    Par camboui dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 23/08/2010, 14h08
  2. quelques soucis avec word 2000
    Par ramchou dans le forum Word
    Réponses: 3
    Dernier message: 06/09/2004, 18h13
  3. souci avec un algorithme
    Par slider16 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 22/03/2004, 17h17
  4. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52
  5. Réponses: 4
    Dernier message: 16/02/2003, 12h16

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