Comment déterminer le fuseau horaire d'un client en PHP ?

DDD
Libérer: 2024-11-03 02:28:02
original
406 Les gens l'ont consulté

How to Determine a Client's Timezone in PHP?

Comment déterminer le fuseau horaire d'un client en PHP

Récupérer le fuseau horaire d'un client peut être utile dans divers scénarios. Cette question explore une méthode permettant d'obtenir le fuseau horaire du client à l'aide d'une combinaison de JavaScript et de PHP, garantissant un affichage précis de l'heure, des opérations spécifiques au fuseau horaire ou un ciblage géographique.

Solution :

  1. Code PHP côté serveur : Créez un fichier PHP et incluez le code suivant au début :
<code class="php">session_start();
$timezone = $_SESSION['time'];</code>
Copier après la connexion

Ce code configure une variable de session nommé "time" pour stocker le fuseau horaire du client.

  1. Code côté client JavaScript : Ajoutez le code suivant à l'en-tête HTML :
<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>
Copier après la connexion

Ce script détecte si la variable PHP $timezone est vide (indiquant que le fuseau horaire d'un client n'a pas été défini) et récupère le décalage horaire du client à partir du navigateur à l'aide de JavaScript. Il envoie ensuite une requête AJAX à un script PHP sur le serveur avec ce décalage.

  1. Script Timezone.php sur le serveur : Créez un nouveau fichier PHP nommé timezone.php avec le code suivant :
<code class="php">session_start();
$_SESSION['time'] = $_GET['time'];</code>
Copier après la connexion

Ce script PHP stocke simplement le décalage horaire envoyé par AJAX dans la variable de session "time".

Comment ça marche :

  1. Le code JavaScript s'exécute côté client et détecte le décalage horaire d'un utilisateur.
  2. Si la variable de session $timezone est vide (première visite), il envoie le décalage au fuseau horaire .php via AJAX.
  3. timezone.php stocke le décalage dans la variable de session "time".
  4. Les informations de fuseau horaire du client sont désormais accessibles côté serveur en utilisant $timezone.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal