有没有办法在服务器端进行时区偏移,通过http读取请求中的内容,而不是将所有内容发送到客户端并让它处理它?
这更复杂,但我之前不得不求助于这种情况,因为机器和用户配置文件设置有时与访问者的偏好不匹配.例如,英国访问者暂时从澳大利亚服务器访问您的站点.
使用@balabaster建议的地理定位服务(例如MaxMind.com),以获得与其IP匹配的区域(Global.Session_Start最佳).这是本地ISP的一个很好的匹配,但对AOL来说不太好.将偏移量存储在会话cookie中.
或者,当用户进入网站时,使用JavaScript将时区偏移量作为表单提交/重定向的一部分.这是浏览器的当前偏移量,但不一定是访问者的首选区域.将此值用作默认值; 存储在另一个会话cookie中.
允许访问者通过持久性cookie(对于匿名用户)和其帐户配置文件中的字段(如果已通过身份验证)更新区域.
持久值#3会覆盖会话值.您还可以为经过身份验证的用户存储相同的持久性Cookie,以便在登录前显示时间.