我开发的网站与不同的事件。我想用用户本地时间显示事件开始时间。我不知道该怎么做。我尝试使用这个django应用django-easy-timezones。但是它用UTC显示时间。我settings.py
TIME_ZONE = 'UTC'
USE_TZ = True
我的模板:{% load tz %}
{% localtime on %}
{{ start_time|date:"H:i" }}
{% endlocaltime %}
在不询问时区的情况下可以这样做吗?
在不直接询问用户的情况下,只有三种方法可以做到这一点;1)使用客户端应用程序,2)依赖于geo-ip或3)依赖于浏览器专有的位置服务。
选项1将要求客户端获取系统时区并将其与请求一起返回。在javascript中,您可以通过调用getTimezoneOffset()
http://www.w3schools.com/jsref/jsref_getTimezoneOffset.asp来获取时区。
选项2将依赖于maxmind的GeoIP数据库。他们有一个关于这个主题的常见问题解答http://dev.maxmind.com/faq/how-can-i-determine-the-timezone-of-a-website-visitor
GeoIP2 City数据库类似地提供时区位置记录。要了解如何访问它,请参阅您的语言的GeoIP2 API的文档。
选项3要求使用每个浏览器的专有地理定位技术。这里有一个关于如何在Mozilla中做到这一点的链接https://www.mozilla.org/en-US/firefox/geolocation/