Ayant eu quelques difficultĂ©es Ă  touver mon bonheur en matière d’horloge javascript, je vous propose ici le code a ajouter dans votre page. Le principe est de rĂ©cupĂ©rer le fuseau horaire du visiteur, de recaler cette heure par rapport Ă  Greenwich (GMT), puis d’effectuer le dĂ©calage entre Greenwich et la zone de l’endroit dont on souhaite avoir l’heure. En l’occurence pour moi Chicago (GMT -5) et Lyon (GMT +1).
Avec une petite particularitĂ© si vous voulez afficher une horloge pour la France, il faut tenir compte du passage Ă  l’heure d’Ă©tĂ©/d’hiver.
   
 
Le seul inconvĂ©nient de ce script, et c’est bien lĂ   son moindre dĂ©faut, est qu’il utilise l’heure du visiteur et donc, cette dernière se doit d’ĂŞtre correctement rĂ©glĂ©e…
Ainsi voici, le code:
Code à placer dans la balise head de votre page (entre <head> et </head>):
 <script language=”JavaScript”>
 <!–
 //PLF-http://www.jejavascript.net/
 //modified by GouZi http://gouziatiit.free.fr
 function heure() {
 //Horloge a l’heure de Paris
 var dd;
 var Maintenant = new Date();
 var fuseau = Maintenant.getTimezoneOffset();
 var heures = Maintenant.getHours();
 var minutes = Maintenant.getMinutes();
 var secondes = Maintenant.getSeconds();
 //DĂ©calage par rapport Ă  Greenwich (GMT) – +1 pour Paris
 heures = heures + (fuseau/60)+1;
 //heure été
 var annee = Maintenant.getFullYear();
 for (i=31; i >24; i–) {
 dimanche = new Date(annee, 2, i);
 if (dimanche.getDay()==0) break;
 }
 for (i=31; i >24; i–) {
 dimanche2 = new Date(annee, 9, i);
 if (dimanche2.getDay()==0) break;
 }
 if (Maintenant >= dimanche && Maintenant < dimanche2) heures = heures + 1;
 //heure été
 // quelques corrections pour retablir des heures inferieures a 0H et superieures a 23H
 if ( heures < 0 ) {
 	heures = 24 + heures;
 	}
 if (heures > 23) {
 	heures = heures – 24;
 	}
 heures = ((heures < 10) ? ” 0″ : ” “) + heures;
 minutes = ((minutes < 10) ? “:0” : “:”) + minutes;
 secondes = ((secondes < 10) ? “:0” : “:”) + secondes;
 // formhorloge_Paris: nom du formulaire pour l’horloge a l’heure de Paris
 // horloge: nom de l’input, où sera affiché l’horloge
 document.formhorloge_Paris.horloge.value = heures + minutes + secondes;
 //Horloge de Chicago
 //de meme sauf qu’on a pas besoin de l’heure d’été
 var Maintenant2 = new Date();
 var fuseau2 = Maintenant2.getTimezoneOffset();
 var heures2 = Maintenant2.getHours();
 var minutes2 = Maintenant2.getMinutes();
 var secondes2 = Maintenant2.getSeconds();
 //Décalage par rapport à Greenwich (GMT) -5 pour Chicago
 heures2 = heures2 + (fuseau2/60)-5;
 // quelques corrections pour retablir des heures inferieures a 0H et superieures a 23H
 if ( heures2 < 0 ) {
 	heures2 = 24 + heures2;
 	}
 if (heures2 > 23) {
 	heures2 = heures2 – 24;
 	}
 heures2 = ((heures2 < 10) ? ” 0″ : ” “) + heures2;
 minutes2 = ((minutes2 < 10) ? “:0” : “:”) + minutes2;
 secondes2 = ((secondes2 < 10) ? “:0” : “:”) + secondes2;
 document.formhorloge_Chicago.horloge.value = heures2 + minutes2 + secondes2;
 dd=setTimeout(“heure()”,1000);
 }
 //–>
 </script>
 
Code à placer à l’intérieur de la balise body:
onload=”heure()” onUnload=”clearTimeout(dd)”
 
Exemple:
<body onload=”heure()” onUnload=”clearTimeout(dd)”>
 
Code à placer dans la balise body de votre page (entre <body> et </body>):
Pour l’horloge  à l’heure de Paris:
 <table>	
 <form name=”formhorloge_Paris” onSubmit=”0″>	
 	<tr>
 		<td width=”30%”><p>Lyon: </p></td>
 		<td width=”70%”><input type=”text” name=”horloge” value=”” /></td>
 	</tr>
 	</form>
 </table>
 
 
Pour l’horloge  à l’heure de Chicago:
 <table>	
 <form name=”formhorloge_Chicago” onSubmit=”0″>	
 	<tr>
 		<td width=”30%”><p>Chicago: </p></td>
 		<td width=”70%”><input type=”text” name=”horloge” value=”” /></td>
 	</tr>
 	</form>
 </table>
 
 
Pour connaître le décalage horaire avec presque toutes les villes dans le monde, demandez à l’horloge parlante !