Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Site Web > Javascript > Une horloge en temps réel grâce à Javascript > Lecture du tutoriel

Une horloge en temps réel grâce à Javascript

Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Avatar
Auteur : raphamil
Note : 14 / 20 (12 votes)
Visualisations : 9 184

Plus d'informations Plus d'informations
Bonjour les Zér0s. :)

Dans ce tuto, je vous apprendrai à créer une petite horloge qui s'actualise toutes les secondes. Pratique à placer dans un pied de page, par exemple.
Sommaire du tutoriel :
Icône du chapitre

Le principe

Le principe est simple : afficher en actualisant toutes les secondes l'heure (heures-minutes-secondes) et la date, en français et dans le format 36 Février 2100 (c'est pour l'exemple :p ).
Je vous prépare le terrain xHTML :

Code : HTML
1
<div id="date_heure"></div>


Voilou c'est tout ! :p Vous n'avez plus qu'à coder. Ce script est vraiment très simple.

Correction : l'heure

Élaborons la structure de notre fonction :

Code : JavaScript
1
2
3
4
5
6
7
function date_heure() {
    //Affichage
}

window.onload = function() {
    setInterval('date_heure()', 1000); //On actualise l'heure toutes les secondes
};


Pour savoir quel jour on est et quelle heure il est, on a besoin d'un objet Date() (logique, quand on y pense ^^ ). J'en profite pour vous donner les méthodes de l'objet Date. On va donc le créer :

Code : JavaScript
1
2
3
4
5
function date_heure() {
    var infos = new Date();

    //Affichage
}


Rien de bien compliqué : on affiche les heures, les minutes, et les secondes dans une jolie phrase :
document.getElementById('date_heure').innerHTML = 'Il est ' + infos.getHours() + ' heures ' + infos.getMinutes() + ', ' + infos.getSeconds() + '.';

Aïe ! Ça n'affiche pas "0" devant les nombres inférieurs à 10, c'est pas beau :euh:

Qu'à cela ne tienne, créons une fonction pour compléter ces fichus nombres avec un 0 !

Code : JavaScript
1
2
3
function compZero(nombre) {
    return nombre < 10 ? '0' + nombre : nombre;
}


Et voilà le travail. :p
On modifie notre petit script :

Code : JavaScript
1
2
3
4
5
6
7
8
9
function compZero(nombre) {
    return nombre < 10 ? '0' + nombre : nombre;
}

function date_heure() {
    var infos = new Date();

    document.getElementById('date_heure').innerHTML = 'Il est ' + compZero(infos.getHours()) + ' heures ' + compZero(infos.getMinutes()) + ', ' + compZero(infos.getSeconds()) + '.';
}

Correction : la date

Avant de créer l'affichage de la date, il va falloir préparer quelques petites choses :

On va donc créer deux arrays :

Code : JavaScript
1
2
var mois = new Array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre');
var jours = new Array('lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi', 'dimanche');


Ensuite, on va devoir bricoler un peu : on se sert du nombre renvoyé par getDay() comme indice de l'array des jours pour accéder au nom français du jour. On fait la même chose pour les mois (getMonth()) et leur array.

Stoop !!! Info de dernière minute : getDay() fait commencer la semaine par le dimanche ; il faut modifier l'array des jours !


Voilà la correction :

Code : JavaScript
1
2
3
4
var mois = new Array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre');
var jours = new Array('dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi');

document.getElementById('date_heure').innerHTML += ' et nous sommes le ' + jours[temps.getDay()] + ' ' + temps.getDate() + ' ' + mois[temps.getMonth()] + ' ' + temps.getFullYear() + '.';

Et au final, ça donne quoi ?

Comme je comprends ceux qui aiment le copier-coller :lol: . Je suis de bonne humeur, je vous donne le code source complet du script :) :

Code : JavaScript
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
function compZero(nombre) {
    return nombre < 10 ? '0' + nombre : nombre;
}

function date_heure() {
    const infos = new Date();

    //Heure
    document.getElementById('date_heure').innerHTML = 'Il est ' + compZero(infos.getHours()) + ' heures ' + compZero(infos.getMinutes()) + ', ' + compZero(infos.getSeconds());

    //Date
    const mois = new Array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre');
    const jours = new Array('dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi');
    document.getElementById('date_heure').innerHTML += ' et nous sommes le ' + jours[infos.getDay()] + ' ' + infos.getDate() + ' ' + mois[infos.getMonth()] + ' ' + infos.getFullYear() + '.';
}

window.onload = function() {
   setInterval("date_heure()", 1000); //Actualisation de l'heure
};

Remarquez que j'ai fait des variables infos, mois et jours des constantes, tout simplement parce que l'on ne les modifie pas.

Et psst... Si vos autres scripts ne fonctionnent plus à cause du mien, jetez un coup d'oeil ici.

Eh bien, merci d'avoir lu ce tuto, et pour toute remarque, etc. -> MP ou commentaires.
Image utilisateur
Et un grand merci à ptipilou
Retour en haut Retour en haut


Créé : le 21/04/2008 à 21:13:26
Modifié : le 22/08/2008 à 16:07:19
Avancement : 100%
Licence : Creative Commons BY-NC-SA

L'orthographe, la grammaire et la présentation de ce tutoriel ont été vérifiées par les zCorrecteurs.

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 507 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0444s (0.0269s)