我正在使用Zend_Framework编写一个应用程序(因此解决方案可以依靠它)。
如何获得客户的时区?
例如,如果有人在俄罗斯莫斯科,我想得到3 * 60 * 60(因为有UTC + 3)。如果他在英国,我要零。如果他使用UTC-3:30(加拿大?),我要-3.5 * 60 * 60。
(这不是格式的问题-我可以在俄罗斯圣彼得堡获得’Europe / Moscow’或’UTC-3’,这是关于获得时区客户端的使用。但是最好以秒为单位的增量)
想到的唯一解决方案是让javascript为我获取本地时间并重定向。
Cookie将保存客户端的时区。相当宽松,但这是因为它很冗长。我已经在自己的一个应用程序中按照这些路线实现了一个解决方案,并且效果很好。
您还可以通过Ajax将时区发送到服务器,然后使其执行您需要执行的任何操作。或者,如果您不使用它进行任何服务器端计算,则只需在需要时应用时区客户端即可。真的取决于您的用例。
除此之外,我建议您让访问者自己设置时区并将其存储在Cookie或会话中。