6

我已经验证 dateutils.tz.tzlocal() 在 heroku 上不起作用,即使它起作用了,它不会只是从计算机的操作系统中获取 tz,而不是用户?

没有存储用户时区,有没有办法确定请求来自哪里?(我正在使用烧瓶)

Twitter 确实有一个设置来调整你的时区,但我想知道他们如何确定默认值应该是什么,以及当用户未登录时它将如何工作。

4

2 回答 2

9

您可以使用 Javascript 并在 cookie 中设置客户端的时区。您甚至可以使用 AJAX 请求,然后将偏移量发送到服务器并保存在客户端的会话中。

var offset = new Date().getTimezoneOffset();

描述

时区偏移量是 UTC 和本地时间之间的差异,以分钟为单位。请注意,这意味着如果本地时区在 UTC 之后,则偏移量为正,如果在之前,则偏移量为负。例如,如果您的时区是 UTC+10(澳大利亚东部标准时间),则将返回 -600。即使对于给定的语言环境,夏令时也可以防止此值保持不变

Mozilla Javascript 参考:getTimezoneOffset

于 2012-08-27T16:43:29.413 回答
1

如果您可以轻松地从烧瓶中获取用户的 IP 地址(可能来自request对象?),您可以使用地理定位。例如通过http://www.hostip.info/

不过,它可能不是 100% 万无一失的。例如,如果有人使用 VPN 或其他类型的代理,您将看不到他的“真实”IP 地址。

于 2012-08-27T16:32:41.410 回答