2009-01-31 8 views
3

Je ne suis pas en web (client/serveur) le développement d'applications, mais avait cette question pendant un certain temps -trouver le fuseau horaire à partir de laquelle une connexion navigateur vers un serveur Web

Si un navigateur web (IE/Firefox) fait une connexion à un site Web, est-il possible pour le serveur Web de trouver le fuseau horaire du client, ou l'heure locale actuelle du lieu du client, et d'afficher le même sur la page.

Si oui, comment le fuseau horaire est-il détecté? Le client joue-t-il un rôle dans ce processus ou seul le serveur peut-il effectuer cette tâche sans aucune intervention du client?

-AD

Répondre

4

Oui. Utilisez quelque chose comme:

<script type="text/javascript" language="javascript"> 
var tz =(new Date).getTimezoneOffset()/-60; 
</script> 

Voir aussi:

http://www.willmaster.com/library/javascript/determining-your-visitors-time-zone.php http://www.tommylacroix.com/2008/02/25/detect-timezone-with-javascript/ http://www.webmasterworld.com/forum13/3922.htm

+0

Il y a des erreurs dans votre code. Essayez ceci à la place: var tz = (nouvelle date) .getTimezoneOffset()/- 60; – some

+0

Bravo, la gueule de bois;) – flesh

2

Le serveur ne peut pas dire directement le fuseau horaire d'une connexion client, mais une petite astuce que vous pouvez faire est d'utiliser Javascript côté client pour déterminer le fuseau horaire, puis le signaler au serveur d'une manière ou d'une autre. Cela peut être en définissant un cookie (le serveur a accès aux cookies), une requête AJAX, ou en changeant un lien href pour insérer le fuseau horaire dans un paramètre GET.