Afficher la date ou l'heure du jour peut s'avérer pénible et laborieux notamment quand on souhaite formater ou afficher ces éléments à un endroit particulier ou encore quand on souhaite mettre en place une horloge à temps réel. Si vous adhérez à ces propos, la Class que je vous propose devrait vous simplifier la vie.
Propriété objWTDate.left :
Détermine en pixels la position X de la zone d'affichage.
Valeur de type entier (Attention, ne pas ajoutez l'unité de mesure).
Valeur par défaut : 0
Propriété objWTDate.top :
Détermine en pixels la position Y de la zone d'affichage.
Valeur de type entier (Attention, ne pas ajoutez l'unité de mesure).
Valeur par défaut : 0
Propriété objWTDate.width :
Détermine en pixels la largeur de la zone d'affichage.
Valeur de type entier (Attention, ne pas ajoutez l'unité de mesure).
Valeur par défaut : 220
Propriété objWTDate.height :
Détermine en pixels la hauteur de la zone d'affichage.
Valeur de type entier (Attention, ne pas ajoutez l'unité de mesure).
Valeur par défaut : 15
Propriété objWTDate.fontSize :
Détermine en pixels le corps du texte de la zone d'affichage.
Valeur de type entier (Attention, ne pas ajoutez l'unité de mesure).
Valeur par défaut : 10
Propriété objWTDate.color :
Détermine la couleur du texte de la zone d'affichage.
Valeur de type chaîne en notation RVB hexadécimale (#rrvvbb).
Valeur par défaut : "#000000"
Propriété objWTDate.bgColor :
Détermine la couleur de fond de la zone d'affichage.
Valeur de type chaîne en notation RVB hexadécimale (#rrvvbb).
Valeur par défaut : "#ffffff"
Propriété objWTDate.borderWidth :
Détermine en pixel l'épaisseur du cadre de la zone d'affichage.
Valeur de type entier (Attention, ne pas ajoutez l'unité de mesure)
Valeur par défaut : 1.
Propriété objWTDate.borderColor :
Détermine la couleur du cadre de la zone d'affichage.
Valeur de type chaîne en notation RVB hexadécimale (#rrvvbb).
Valeur par défaut : "#000000"
Méthode objWTDate.displayWT(id) :
Affiche et positionne la zone d'affichage.
Cette méthode accepte en argument 1 paramètre optionnel de type chaîne.
Ce paramètre représente l'objet identifié par l'attribut HTML 'ID' dans lequel on souhaite
insérer la zone d'affichage (Attention dans ce cas de figure les propriétés top et left
sont désactivées.)
Si la méthode est utilisée sans paramètre, le positionnement de la zone d'affichage se fait
avec les propriétés top et left. Le point de référence est le coin supérieur gauche
de la fenêtre du navigateur.
var awtD_us = new Array('sunday','monday','tuesday','wednesday','thursday','friday','saturday'); var awtM_us = new Array('january','february','march','april','may','june','july' ,'august','september','october','november','december'); var awtD_es = new Array('domingo','lunes','martes','miercoles','jueves','viernes','sabato'); var awtM_es = new Array('enero','febrero','marzo','abril','mayo','junio','julio' ,'agosto','septiembre','octubre','noviembre','diciembre'); var awtD_fr = new Array('dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi'); var awtM_fr = new Array('janvier','février','mars','avril','mai','juin','juillet' ,'aoüt','septembre','octobre','novembre','decembre');
var wtfontSize = ( isNaN(this.fontSize) )? 10 : this.fontSize; var wtleft = ( isNaN(this.left) )? 0 : this.left; var wttop = ( isNaN(this.top) )? 0 : this.top; var wtwidth = ( isNaN(this.width) )? 220 : this.width; var wtheight = ( isNaN(this.height) )? 15 : this.height; var wtborderWidth = ( isNaN(this.borderWidth) )? 1 : this.borderWidth;
// Creation, wtformatage et affichage dans le document de l'éléments container du WorldTimer // *******************************************************************
// Creation d'un nouvel identifiant pour l'objet INPUT. var i = 1; do { var wtid = "wtinput_" + i; i++; } while (document.getElementById(wtid));
// Création de l'élément var elInput = document.createElement("INPUT"); elInput.setAttribute('type','text'); elInput.setAttribute('id',wtid); elInput.unselectable = "On";
// Vérification de l'argument de methode // si il est vide : alors insertion dynamique du champ INPUT // sinon : insertion du champ INPUT dans l'élément référencé par 'pid'. if ( pid != null ) {
// Insertion dans 'pid'. document.getElementById(pid).appendChild(elInput); } else {
// Insertion Dynamique. document.getElementsByTagName('body').item(0).appendChild(elInput); with(document.getElementById(wtid).style) { position = "absolute"; left = wtleft + "px"; top = wttop + "px"; } }
this.engineRealTime = function() { // Recupération de la date et de l'heure courante. var dNow = new Date(); var dday = dNow.getDay(); var ddate = dNow.getDate(); var dmonth = dNow.getMonth(); var dyear = dNow.getFullYear();
var dhrs = dNow.getHours(); var dmns = dNow.getMinutes(); var dmns = ( dmns < 10 )? '0' + dmns : dmns; var dscs = dNow.getSeconds(); var dscs = ( dscs < 10 )? '0' + dscs : dscs; var dmil = dNow.getMilliseconds();
// Gestion de la wtcasse et ecriture de la date dans le champ. gthedate = (wtcasse == 'upper')? gthedate.toUpperCase() : gthedate; document.getElementById(wtid).value = gthedate; } // Fin Methode engineRealTime.
Du JavaScript, une cuillerée de CSS versus JSSS et une pincée de DOM et le tour est joué.
Des CSS pour le formatage de la zone d'affichage et
le DOM pour l'insertion et l'affichage.
Il est tout à fait possible de créer plusieurs instances de cet objet (ne serait-ce que pour afficher la date à un endroit et l'heure à un autre) mais n'exagérez pas !
Ce script est limité aux navigateurs de génération 5 comme je l'ai indiqué en introduction et comme toujours il est perfectible.