Maison  >  Article  >  développement back-end  >  Comment déterminer le fuseau horaire d'un client en PHP ?

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

DDD
DDDoriginal
2024-11-03 02:28:02406parcourir

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>

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>

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>

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!

Déclaration:
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