Est-il un moyen standard pour un Serveur Web afin de déterminer ce décalage de fuseau horaire d'un utilisateur?
Peut-être à partir d'un HTTP
- tête? Ou partie de l'agent utilisateur description?
Est-il un moyen standard pour un Serveur Web afin de déterminer ce décalage de fuseau horaire d'un utilisateur?
Peut-être à partir d'un HTTP
- tête? Ou partie de l'agent utilisateur description?
-new Date().getTimezoneOffset()/60;
getTimezoneOffset()
se soustraire votre temps de GMT et de retourner le nombre de minutes. Donc, si vous vivre dans GMT-8, il sera de retour 480. Pour mettre cela en heures, diviser par 60. Aussi, notez que le signe est le contraire de ce que vous avez besoin, c'est le calcul de l'heure GMT du décalage à partir de votre fuseau horaire, pas le temps de la zone de décalage de l'heure GMT. Pour résoudre ce problème, il suffit de multiplier par -1.
Les plus populaires (=- =de série?) façon de déterminer le fuseau horaire j'ai vu autour de est tout simplement de demander aux utilisateurs eux-mêmes. Si votre site nécessite un abonnement, ce qui pouvait être sauvé dans le profil des utilisateurs de données. Pour anon utilisateurs, les dates peuvent être affichées en heure UTC ou GMT ou quelque chose du genre.
Je n'essaie pas d'être un smart aleck. C'est juste que parfois certains problèmes avoir plus de solutions en dehors de tout contexte de programmation.
Il n'y a pas d'en-têtes HTTP qui fera rapport sur les clients fuseau horaire jusqu'à présent mais il a été suggéré d'inclure dans la spécification HTTP.
Si c'était moi, je serais probablement essayer de récupérer le fuseau horaire à l'aide de JavaScript côté client et de le soumettre ensuite au serveur à l'aide d'Ajax ou de quelque chose.
Javascript est le moyen le plus facile d'obtenir du client, heure locale. Je voudrais suggérer à l'aide d'un XMLHttpRequest
de renvoyer le, heure locale, et si cela échoue, revenir à la timezone détectés en fonction de leur adresse IP.
Aussi loin que la géolocalisation, j'ai utilisé MaxMind GeoIP sur plusieurs projets et il fonctionne bien, même si je ne suis pas sûr si elles fournissent des données de fuseau horaire. C'est un service que vous payez pour et ils fournissent des mises à jour mensuelles de votre base de données. Ils fournissent des wrappers dans plusieurs langages web.
Voici une robuste solution d'activer JavaScript pour déterminer le fuseau horaire du navigateur.
>>> var timezone = jstz.determine();
>>> timezone.name();
"Europe/London"
http://www.pageloom.com/automatic-timezone-detection-with-javascript
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.