UT C Смещение клиента при первой / одностраничной загрузке с использованием Javascript и PHP - PullRequest
1 голос
/ 22 марта 2020

Я использую следующее для определения смещения UT C и передачи его в переменную PHP ($utc_offset). Проблема в том, что $utc_offset будет иметь значение только при загрузке второй страницы (пусто при загрузке первой страницы). Как я могу передать смещение UT C в PHP при загрузке одной страницы?

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

    <?php
    echo $utc_offset = $_COOKIE['offset'];
    ?>

1 Ответ

0 голосов
/ 22 марта 2020

Итак:

  • пользователь впервые заходит на страницу
  • запрос отправляется на сервер
  • сервер отправляет контент пользователю, включая Javascript код
  • код Javascript будет генерировать готовку ie
  • при последующих загрузках, при которых приготовление ie будет правильным (но не при первой загрузке)

Дело в том, что для выполнения вашего Javascript вам нужно будет отправить его в браузер, и в этот момент нужный вам повар ie еще не создан. Однако даже если вы не можете решить эту проблему при первой загрузке, вы можете добиться почти аналогичного поведения, отправив AJAX запрос сразу после создания Cook ie, чтобы сервер получил его.

Поэтому вам потребуется обработать первое посещение, когда смещение неизвестно, но запрос AJAX, автоматически отправленный на сервер сразу после этого, решает эту проблему.

...