有没有一种方法可以通过在HTTP上读取请求中的内容,而不是将所有内容都发送给客户端并让其处理来在服务器端进行时区偏移?

最佳答案

这更复杂,但是在此之前我不得不求助于这种情况,因为计算机和用户配置文件设置有时与访问者的首选项不匹配。例如,英国的访问者从澳大利亚的服务器临时访问您的网站。

  • 使用@balabaster建议的地理位置服务(例如MaxMind.com)来获取与其IP匹配的区域(Global.Session_Start最好)。这对本地ISP来说是一个很好的匹配,但对AOL来说却不是很好。将偏移量存储在 session cookie中。
  • 或在用户进入网站时使用JavaScript获取时区偏移量,作为表单提交/重定向的一部分。这是浏览器的当前偏移量,但不一定是访问者的首选区域。使用该值作为默认值;存储在另一个 session cookie中。
    
    <script type="text/javascript" language="JavaScript">
    var offset = new Date();
    document.write('<input type="hidden" id="clientTzOffset" name="clientTzOffset" value="' + offset.getTimezoneOffset() + '"/>');
    </script>
    
  • 允许访问者通过持久性cookie(针对匿名用户)和其帐户资料中的字段(如果已验证)来更新区域。

  • 来自的持久值#3会覆盖 session 值。您还可以为经过身份验证的用户存储相同的持久性cookie,以在他们登录之前显示时间。

    09-10 03:37
    查看更多