使用Javascript和PHP加载首页/单页时客户端的UTC偏移量

问题描述 投票:0回答:1

我正在使用以下方法确定UTC偏移量并将其传递给PHP变量($utc_offset)。问题是$utc_offset仅在第二页加载时有一个值(第一页加载时为空)。如何在一页加载中将UTC偏移量传递给PHP?

    <script>
    var dateVar = new Date();
    var offset = dateVar.getTimezoneOffset();
    document.cookie = "offset="+offset/60;
    </script>

    <?php
    echo $utc_offset = $_COOKIE['offset'];
    ?>
javascript php cookies utc
1个回答
0
投票

所以:

  • 用户首先访问页面
  • 请求已发送到服务器
  • 服务器向用户发送内容,包括Java脚本代码
  • Javascript代码将生成一个cookie
  • 在后续加载中,cookie是正确的(但在第一次加载时不正确)

事实是,要执行您的Javascript,您需要将其发送到浏览器,此时尚未创建所需的cookie。但是,即使您无法在首次加载时解决此问题,也可以通过在创建cookie之后发送AJAX request来实现几乎类似的行为,以便服务器将其获取。

因此,在不知道偏移量但只有AJAX请求的情况下,您将需要处理首次访问,此请求随后会自动发送到服务器,从而解决了此问题。

© www.soinside.com 2019 - 2024. All rights reserved.