Déterminer le fuseau horaire d'un utilisateur

Existe-t-il un moyen standard permettant à un serveur Web de déterminer le fuseau horaire d'un utilisateur dans une page Web ?

Peut-être à partir d'un en-tête HTTP ou d'une partie de la chaîne user-agent ?

请先 登录 后评论

4 réponses

Mads Kristiansen

Aucun en-tête HTTP n'indique le fuseau horaire des clients jusqu'à présent, bien qu'il ait été suggéré de l'inclure dans la spécification HTTP.

Si c'était moi, j'essaierais probablement de récupérer le fuseau horaire à l'aide de JavaScript côté client, puis de le soumettre au serveur à l'aide d'Ajax ou autre.

请先 登录 后评论
Ishmaeel

Le moyen le plus populaire (==standard ?) de déterminer le fuseau horaire que j'ai vu consiste simplement à demander aux utilisateurs eux-mêmes. Si votre site Web nécessite un abonnement, cela pourrait être enregistré dans les utilisateurs ' données de profil. Pour les utilisateurs anonymes, les dates peuvent être affichées en UTC ou GMT ou quelque chose comme ça.

Je n'essaie pas d'être un malin. C'est juste que parfois certains problèmes ont des solutions plus fines en dehors de tout contexte de programmation.

请先 登录 后评论
Orion Edwards

La magie semble être à l'intérieur

visitortime.getTimezoneOffset()

C'est cool, je ne savais pas ça. Cela fonctionne-t-il dans IE, etc.? À partir de là, vous devriez pouvoir utiliser JS pour ajax, définir des cookies, peu importe. J'opterais probablement moi-même pour les cookies.

Vous devrez cependant autoriser l'utilisateur à le modifier. Nous avons essayé d'utiliser la géolocalisation (via maxmind) pour le faire il y a un certain temps, et cela s'est trompé assez souvent - suffisamment pour que cela ne vaille pas la peine d'être fait, nous avons donc simplement laissé l'utilisateur le définir dans son profil et afficher un avis aux utilisateurs qui n'ont pas encore défini le leur.

请先 登录 后评论
Alek Davis

Voici un article (avec code source) qui explique comment déterminer et utiliser l'heure localisée dans un ASP.NET (VB.NET, C

请先 登录 后评论