Afficher les dates et heures de différentes capitales en temps réel
![]()
Sur certains sites, il peut être amusant (et parfois utile) d'afficher l'heure qu'il est ailleurs dans le monde et en temps réel
![]()
![]()
var dpaJJ déclarartion des variables: jour, mois, année
var dpaMM
var dpaAAAA
c=0 bisextile à zéro
function RetourneDate(I){
la fonction majeure du programme qui
va calculer l'heure GMT actuelle et déterminer les autres
heures, vous n'avez pas à toucher à cette fonction, pour les
curieux quelques explications en rouge
var HerDate= new Date() la variable qui détermine la date actuelle en millisecondes à partir du 1/1/1970
ecart = I * 60 * 1000; ecart et sa variable I représente le décalage horaire, I est exprimé en minutes, il peut être positif ou négatif
dpaDate= HerDate.getTime() + ecart; HerDate.getTime() est la date GMT en millisecondes
dpaDateS=dpaDate/1000; qu'on raméne en secondes
jour=parseInt(dpaDateS/86400)-5 puis en jours en déduisant 5, le nombre d'années bisextiles depuis 1970
annee=parseInt(jour/366) détermine le nombre d'années écoulées depuis 1970
if (((annee+1970)/4)==parseInt((annee+1970)/4)){c=1}si l'année est divisible par 4, elle est bisextile
restann=dpaDateS-(annee*365*86400)-(6*86400) combien de jours restent-ils aprés tout ça?
moisjour=parseInt(restann/86400) et c'est là le probléme, les mois ne sont pas égaux (remarquez la variable c qui prend en compte les bisextiles), la variable mj2 va prendre la valeur nécessaire en fonction du mois concerné
if (moisjour<=31) {
mois=1
mj2=0;}
else if (moisjour<=59+c){
mois=2
mj2=31;}
else if (moisjour<=90+c){
mois=3
mj2=59+c;}
else if (moisjour<=120+c){
mois=4
mj2=90+c;}
else if (moisjour<=151+c){
mois=5
mj2=120+c;}
else if (moisjour<=181+c){
mois=6
mj2=151+c;}
else if (moisjour<=212+c){mois=7
mj2=181+c;}
else if (moisjour<=243+c){mois=8
mj2=212+c;}
else if (moisjour<=273+c){mois=9
mj2=243+c;}
else if (moisjour<=304+c){
mois=10
mj2=273+c;}
else if (moisjour<=334+c){
mois=11
mj2=304+c;}
else if (moisjour<=365+c){
mois=12
mj2=334+c;}
else if (moisjour>365+c){mois=1
annee=annee+1
mj2=365+c;}
restmoi = restann-(mj2*86400)
jours=parseInt(restmoi/86400) à partir de mj2 on détermine la date du mois
restsec= dpaDateS-((jour+5)*86400) il ne reste plus qu'à déterminer les heures et
minutes
heurs=Math.floor(restsec/3600)
minut= Math.floor((restsec-(heurs*3600))/60)
on reporte les résultats
dans les variables ad hoc
dpaJJ=jours
dpaMM=mois
dpaAAAA=annee+1970
if (minut<10){ on entre ça dans une chaine de caractéres formatée et
on fignole au cas où les minutes n'auraient qu'un chiffre
string=" "+dpaJJ+'/'+dpaMM+'/'+dpaAAAA+' - '+heurs+' H
0'+minut+' mn ';}
else {string=" "+dpaJJ+'/'+dpaMM+'/'+dpaAAAA+' -
'+heurs+' H '+minut+' mn ';}
}
function heur(){
la fonction la plus importante pour l'utilisateur
RetourneDate(0) renvoie à la fonction précédente, le chiffre entre parenthéses représente le décalage horaire par rapport à l'heure GMT (méridien de Greenwich), ici 0 puisque c'est l'heure en question
document.forms[0].elements[0].value=string; affichage du résultat dans le formulaire ci-dessous dont la présentation ne dépend que de vous, attention à l'incrémentation des cases de ce formulaire et donc des villes et donc des heures !!
RetourneDate(+120) ça c'est pour Paris, en heure d'été, en hiver il faut mettre 60 !! (ce décalage doit disparaitre depuis plusieurs années !!)
document.forms[0].elements[1].value=string;
RetourneDate(-240) etc........
document.forms[0].elements[2].value=string;
RetourneDate(+330)
document.forms[0].elements[3].value=string;
RetourneDate(420)
document.forms[0].elements[4].value=string; ........................
setTimeout('heur()',30000); cette instruction, à mettre à la fin de cette procédure assure l'actualisation de l'heure en millisecondes (ici 30 secondes)
}</script>
IMPORTANT: aprés body
écrire: onload="heur();"
soit:
<body onload="heur();">
<form> le formulaire à votre goût
<div
align="left"><table border="0"
width="100%"><tr><td
width="60%"><p
align="right"><font color="#0000A0"
size="4" face="Times New Roman">
Date et Heure GMT :</font></p></td><td
valign="top" width="40%"><font
color="#0000A0"size="4" face="Times New
Roman"><input type="text"
size="20" name="1" value="
"></font></td></tr><tr><td
width="60%"><p
align="right"><font color="#0000A0"
size="4">à </font><font
color="#0000A0" size="4" face="Times New
Roman">Paris:</font></p></td><td
valign="top" width="40%"><font
color="#0000A0"size="4" face="Times New
Roman"><input type="text"size="20"
name="2" value="
"></font></td></tr></table></div></form></body></html>
|
|