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>