3 回答
![?](http://img1.sycdn.imooc.com/54584cde0001d19202200220-100-100.jpg)
TA贡献1811条经验 获得超5个赞
请查看有关如何通过JavaScript设置Cookie 来检测时区的文章,该 Cookie将保存客户端的时区。相当宽松,但这是因为它很冗长。我已经在自己的一个应用程序中按照这些路线实现了一个解决方案,并且效果很好。
您还可以通过Ajax将时区发送到服务器,然后使其执行您需要执行的任何操作。或者,如果您不使用它进行任何服务器端计算,则只需在需要时应用时区客户端即可。真的取决于您的用例。
除此之外,我建议您让访问者自己设置时区并将其存储在Cookie或会话中。
![?](http://img1.sycdn.imooc.com/54584cd10001404b02200220-100-100.jpg)
TA贡献1828条经验 获得超6个赞
这是一个cookie解决方案,开销很小:
echo <<<EOE
<script type="text/javascript">
if (navigator.cookieEnabled)
document.cookie = "tzo="+ (- new Date().getTimezoneOffset());
</script>
EOE;
if (!isset($_COOKIE['tzo'])) {
echo <<<EOE
<script type="text/javascript">
if (navigator.cookieEnabled) document.reload();
else alert("Cookies must be enabled!");
</script>
EOE;
die();
}
$ts = new DateTime('now', new DateTimeZone('GMT'));
$ts->add(DateInterval::createFromDateString($_COOKIE['tzo'].' minutes'));
- 3 回答
- 0 关注
- 452 浏览
添加回答
举报