Heim  >  Artikel  >  Backend-Entwicklung  >  Wie bestimme ich die Zeitzone eines Clients in PHP?

Wie bestimme ich die Zeitzone eines Clients in PHP?

DDD
DDDOriginal
2024-11-03 02:28:02406Durchsuche

How to Determine a Client's Timezone in PHP?

So ermitteln Sie die Zeitzone eines Kunden in PHP

Das Abrufen der Zeitzone eines Kunden kann in verschiedenen Szenarien hilfreich sein. In dieser Frage wird eine Methode zum Abrufen der Zeitzone des Clients mithilfe einer Kombination aus JavaScript und PHP untersucht, um eine genaue Zeitanzeige, zeitzonenspezifische Vorgänge oder Geo-Targeting sicherzustellen.

Lösung:

  1. Serverseitiger PHP-Code: Erstellen Sie eine PHP-Datei und fügen Sie am Anfang den folgenden Code ein:
<code class="php">session_start();
$timezone = $_SESSION['time'];</code>

Dieser Code richtet eine Sitzungsvariable ein mit dem Namen „time“, um die Zeitzone des Clients zu speichern.

  1. JavaScript-Client-seitiger Code: Fügen Sie den folgenden Code zum HTML-Kopf hinzu:
<code class="html"><script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<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://domain.com/timezone.php",
                data: 'time='+ visitortimezone,
                success: function(){
                    location.reload();
                }
            });
        }
    });
</script></code>

Dieses Skript erkennt, ob die PHP-Variable $timezone leer ist (was anzeigt, dass die Zeitzone eines Clients nicht festgelegt wurde) und ruft mithilfe von JavaScript den Zeitversatz des Clients vom Browser ab. Anschließend wird mit diesem Offset eine AJAX-Anfrage an ein PHP-Skript auf dem Server gesendet.

  1. Timezone.php-Skript auf dem Server: Erstellen Sie eine neue PHP-Datei mit dem Namen timezone.php mit dem Folgender Code:
<code class="php">session_start();
$_SESSION['time'] = $_GET['time'];</code>

Dieses PHP-Skript speichert einfach den von AJAX gesendeten Zeitversatz in der Sitzungsvariablen „time“.

So funktioniert es:

  1. Der JavaScript-Code wird auf der Clientseite ausgeführt und erkennt den Zeitzonenversatz eines Benutzers.
  2. Wenn die Sitzungsvariable $timezone leer ist (erster Besuch), wird der Versatz zur Zeitzone gesendet .php über AJAX.
  3. timezone.php speichert den Offset in der Sitzungsvariablen „time“.
  4. Auf die Zeitzoneninformationen des Clients kann jetzt serverseitig über $timezone zugegriffen werden.

Das obige ist der detaillierte Inhalt vonWie bestimme ich die Zeitzone eines Clients in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn