PHP - Получить местное время устройства / браузера в Unix - PullRequest
0 голосов
/ 28 декабря 2018

Мне нужно, чтобы время конечного пользователя отображалось на странице, в идеале это было бы

Q1) обнаружение часового пояса конечного пользователя,

2) Затем я получутекущее время Unix, используя $currenttimeunix = time();

Q3) с поправкой на разницу часовых поясов

2 Я могу сделать, так что это Q1 и Q3 Мне нужна помощь с

1 Ответ

0 голосов
/ 29 декабря 2018

Вы ничего не можете сделать с устройством / браузером пользователя / чем-либо еще с помощью php, так как это ответственность javascript (или любого языка на стороне клиента).

PHP работает на сервере, а не на устройстве пользователя.time() всегда даст вам время сервера в эпоху, а не пользователя.

Для получения более подробной информации о том, как получить местное время пользователя с помощью javascript (используя jquery), проверьте этот ответ .Хотя вы никогда не можете доверять этому, поскольку @FelippeDuarte и @Andreas обсуждали это в комментариях к вашему вопросу.


Обновление Я копирую самые важные части упомянутого ответа.

На странице PHP, где вы хотите иметь часовой пояс в качестве переменной, поместите этот фрагмент кода где-то в верхней части страницы:

<?php    
    session_start();
    $timezone = $_SESSION['time'];
?>

Это будет читать переменную сеанса "время", который мы сейчас собираемся создать.

На той же странице, в разделе <head>, прежде всего необходимо включить jQuery:

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>

Также в <head> section ,, вставьте этот jQuery:

<script type="text/javascript">
    $(document).ready(function() {
        if("<?php echo $timezone; ?>".length==0){
            var visitortime = new Date();
            var visitortimezone = "GMT " + -visitortime.getTimezoneOffset()/60;
            $.ajax({
                type: "GET",
                url: "http://example.com/timezone.php",
                data: 'time='+ visitortimezone,
                success: function(){
                    location.reload();
                }
            });
        }
    });
</script>

Создайте новый файл с именем timezone.php и укажите на него указанный выше URL

<?php
    session_start();
    $_SESSION['time'] = $_GET['time'];
?>

Если этоработает правильно, он сначала загрузит страницу, выполнит JavaScript и перезагрузит страницу.После этого вы сможете прочитать переменную $ timezone и использовать ее в свое удовольствие!Возвращает текущее смещение часового пояса UTC / GMT (GMT -7) или любой другой часовой пояс, в котором вы находитесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...