2012-10-23 4 views
1

Je l'ai lu il y a beaucoup de soutien de fuseau horaire disponible dans Django 1.4, mais comment peut-on obtenir le fuseau horaire de l'utilisateur dans Django 1.3?Comment obtenir Timezone de l'utilisateur dans Django 1.3 Http Demande

Une fois que je le fuseau horaire-à-dire quelque chose comme Europe \ Londres ou « GMT + 4: 00 », il est facile d'utiliser un middleware pour le mettre dans le request.META dict afin qu'il soit disponible à chaque demande ...

Répondre

0

Le fuseau horaire de l'utilisateur n'est normalement pas disponible pour le serveur. Si vous regardez les en-têtes de demande de votre propre navigateur Web dans quelque chose comme http://www.myhttp.info/, vous verrez qu'il n'y a rien là-dedans qui donne une idée de votre fuseau horaire.

Cependant, si vous pouvez exécuter du Javascript côté client, vous pouvez utiliser le constructeur de la classe Date et Date.UTC d'examiner la différence entre l'heure locale et UTC sur le client. Cette différence est le décalage temporel actuel, qui est le meilleur que vous pouvez faire de manière fiable.

+1

Etes-vous vraiment sûr? alors, comment Django 1.4 le supporte-t-il? vous pouvez faire quelque chose comme 'tz = request.session.get ('django_timezone'); si tz: timezone.activate (tz) 'dans un middleware dans Django 1.4 et que vous obtenez le fuseau horaire de l'utilisateur partout quand il est disponible, consultez ce https://docs.djangoproject.com/fr/1.4/topics/i18n/timezones/ – Optimus

+0

ne va pas aussi loin. À , il est dit que Django ne peut pas déterminer automatiquement le fuseau horaire de l'utilisateur, mais il fournit des outils pour vous aider à obtenir cette information de l'utilisateur. – aecolley