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 :

Affichage du mois en javascript


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 112
    Points : 49
    Points
    49
    Par défaut Affichage du mois en javascript
    Bonjour,
    un soucis avec mon script js.
    Tout marchait bien et voici qu'à ma grande surprise le numéro du mois ne s'affiche plus correctement.
    Il affiche 00 au lieu de 01 pour le mois de Janvier. Je ne vois pas l'erreur.

    Ci-dessous le script en question:

    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
    //Vu que le mois est un chiffre (10 correspond à novembre), on va faire un tableau
    var tableauMois = new Array(
    'janvier',
    'février',
    'mars',
    'avril',
    'mai',
    'juin',
    'juillet',
    'août',
    'septembre',
    'octobre',
    'novembre',
    'décembre'
    );
     
    // Idem que pour les mois, sauf qu'en anglais la semaine commence par le dimanche
     var tableauJours = new Array(
     'dimanche',
     'lundi',
     'mardi',
     'mercredi',
     'jeudi',
     'vendredi',
     'samedi'
     );
     
    //affiche l'heure une seule fois
    function afficherDateHeure()
        {
    		// Contient toutes les infos que l'on a besoin ur la date et l'heure
    		var dateGlobale = new Date();
     
    		//On recupère l'année
    		var annee = dateGlobale.getFullYear();
     
    		//On recupère le numéro du mois
    		var mois = dateGlobale.getMonth();
     
    		/* var numeroMois = dateGlobale.getUTCMonth(); */
    		var numeroMois = dateGlobale.getUTCMonth();
     
    		//On recupère le numéro du jour
    		var jour = dateGlobale.getDay();
     
    		//Croyez moi, c'est le numero du jour, ... oui ça n'est pas très explicite.
    		var numeroJour = dateGlobale.getDate();
     
    		//On recupère l'heure
    		var heure = dateGlobale.getHours();
     
    		// On recupère les minutes
    		var minute = dateGlobale.getMinutes();
     
    		// On recupère les sécondes
    		var seconde = dateGlobale.getSeconds();
     
    		// Pas d'affichage du zéro après 10
    		if(numeroMois<10)
    		    { 
    		        // On ajout un "0" à la chaîen heure.
    		        numeroMois = "0" + numeroMois.toString();
    	        }
     
    		if(numeroJour<10)
    		    {
    				numeroJour = "0" + numeroJour.toString();
    			}
     
     
     
     
    		if(heure<10)
    		    { 
    		        // On ajout un "0" à la chaîen heure.
    		        heure = "0" + heure.toString();
    	        }
     
    		if(minute<10)
    		    {
    				minute = "0" + minute.toString();
    			}
     
    		if(seconde<10)
    		    {
    				seconde = "0" + seconde.toString();
    			}
    		//on assigne le bon mois
    	    mois = tableauMois[mois];
     
    		//on assigne le bon jour
    	    jour = tableauJours[jour];
     
    		// On recupère notre div "date__heure"
    		var dateHeure = document.getElementById("date_heure");
     
    		//On met la date et l'heure dans la div
    		dateHeure.innerHTML = " "+ numeroJour + "-" + numeroMois + "-" + annee + "</br>" + heure + ":" + minute + ":" + seconde;
    	}
    	// affichera toutes les secondes notre heure
     
    function afficherChaqueSecondeHeure()
        {
    		// On affiche une première fois l'heure pour éviter le blanc d'une séconde
    		afficherDateHeure();
     
    		var delai = 1000; // délai en milisécondes
    		// On crée un timer qui va "ticker" toutes les sécondes et afficher l'heure dynamiquement.
    		setInterval(afficherDateHeure, delai);
    	}
    Merci pour votre aide.

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 898
    Points : 6 669
    Points
    6 669
    Par défaut
    L'indexation d'un tableau commence à 0 pas à 1.

  3. #3
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 749
    Points
    4 749
    Par défaut
    c'est d'autant plus pratique ici, car les listes de jours ou de mois sont des tableaux circulaires.

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function f_Mois_Suivant(NoMois) {
      return ++NoMois %12;
    }
     
    console.log( f_Mois_Suivant(3) );  // -->4
    console.log( f_Mois_Suivant(11) ); // -->0

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 112
    Points : 49
    Points
    49
    Par défaut
    Vous pouvez m'aider svp?

  5. #5
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 898
    Points : 6 669
    Points
    6 669
    Par défaut
    Les méthodes Date.prototype.getMonth() et Date.prototype.getUTCMonth() renvoient le numéro du mois mais numéroté de 0 à 11, donc si tu veux afficher le mois sous forme de nombre tu dois ajouter 1.

  6. #6
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 749
    Points
    4 749
    Par défaut
    Est-ce la réponse que tu recherches ?
    Code JavaScript : 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
        var
          dateHeure    = document.getElementById("date_heure"),
          tableauMois  = [ 'janvier', 'février', 'mars',      'avril',   'mai',      'juin', 
                           'juillet', 'août',    'septembre', 'octobre', 'novembre', 'décembre' ],
          tableauJours = [ 'dimanche', 'lundi','mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi' ]
          ;
     
        setInterval(afficherDateHeure, 1000);
     
     
        function afficherDateHeure() {  
          let
            DH_Global = new Date(),                 // Contient toutes les infos que l'on a besoin ur la date et l'heure
            annee     = DH_Global.getFullYear(),   // On recupère l'année
            mois      = DH_Global.getMonth(),     // On recupère le numéro du mois
            jour_Sem  = DH_Global.getDay(),      // On recupère le numéro du jour de la semaine
            jour_Mois = DH_Global.getDate(),    // On recupère le numéro du jour dans le mois
            hrs       = pad(DH_Global.getHours(),2),
            mins      = pad(DH_Global.getMinutes(),2),
            secs      = pad(DH_Global.getSeconds(),2)
            ;
         dateHeure.innerHTML = `${tableauJours[jour_Sem]} ${jour_Mois} - ${tableauMois[mois]} [${pad((mois + 1),2)}] - ${annee} <br/> ${hrs}:${mins}:${secs} `;
        }
     
        function pad(n, len) { // ajout de 0 
          let s = n.toString();
          return '0'.repeat(Math.max(len - s.length, 0)) + s;
        };

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 112
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par CosmoKnacki Voir le message
    Les méthodes Date.prototype.getMonth() et Date.prototype.getUTCMonth() renvoient le numéro du mois mais numéroté de 0 à 11, donc si tu veux afficher le mois sous forme de nombre tu dois ajouter 1.
    CosmoKnacki, pouvez me dire ou est-ce que je dois ajouter "1" svp?

  8. #8
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 749
    Points
    4 749
    Par défaut
    Citation Envoyé par CosmoKnacki Voir le message
    donc si tu veux afficher le mois sous forme de nombre tu dois ajouter 1.

    ce qui veut dire dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		//On recupère le numéro du mois
    		var mois = dateGlobale.getMonth();
     
    		/* var numeroMois = dateGlobale.getUTCMonth(); */
    		var numeroMois = dateGlobale.getUTCMonth();
    à remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    		//On récupère le numéro du mois
    		var mois = dateGlobale.getMonth();
     
    		var numeroMois = mois +1; // mois de 1 à 12 au lieu de  zéro à 11
    et j'ai modifié mon code pour afficher aussi le numéro du mois.

    PS: utiliser le temps UTC est inutile ici. sauf si tu veux indiquer l'heure sur un autre fuseau horaire que celui de la machine hôte, et dans ce cas il faut préciser lequel.

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2016
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2016
    Messages : 112
    Points : 49
    Points
    49
    Par défaut
    Merci bien à vous psychadelic, ça marche.
    Encore merci!

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

Discussions similaires

  1. probleme d'affichage et erreur de javascripte
    Par tarik75 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/10/2006, 02h10
  2. probleme d'affichage a cause de javascript
    Par cedre22 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/03/2006, 13h15
  3. Affichage des mois dans une liste déroulante
    Par Le Rebel dans le forum Langage
    Réponses: 15
    Dernier message: 20/02/2006, 13h37
  4. [MySQL] Affichage des mois
    Par lechewal dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 06/02/2006, 11h23
  5. affichage ??? AIDER MOI !!!
    Par ismael80 dans le forum C++
    Réponses: 6
    Dernier message: 16/08/2004, 15h22

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