Maison >développement back-end >tutoriel php >Comment puis-je déterminer avec précision le fuseau horaire d'un utilisateur dans le développement Web à l'aide de PHP et JavaScript ?

Comment puis-je déterminer avec précision le fuseau horaire d'un utilisateur dans le développement Web à l'aide de PHP et JavaScript ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-28 00:15:10478parcourir

How Can I Accurately Determine a User's Timezone in Web Development Using PHP and JavaScript?

Bonnes pratiques pour déterminer le fuseau horaire de l'utilisateur dans le développement Web

Lors de la création d'applications Web, il est souvent nécessaire de connaître le fuseau horaire de l'utilisateur pour proposer des expériences localisées ou afficher les horodatages avec précision. Bien que cette question présente un doublon potentiel, elle manque de détails d'implémentation spécifiques. Examinons donc les approches recommandées utilisant PHP et JavaScript.

Solution PHP

PHP fournit une réponse simple méthode pour déterminer le fuseau horaire de l’utilisateur à l’aide de variables de session. L'extrait de code suivant montre comment :

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

Pour capturer le fuseau horaire de l'utilisateur et le stocker dans la variable de session, vous pouvez utiliser le script jQuery suivant :

<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>

Dans ce script, vous devez remplacer "http://example.com/timezone.php" par l'URL de votre domaine réel.

Enfin, créez un fichier appelé "timezone.php" avec le code suivant :

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

Solution JavaScript

Vous pouvez également utiliser JavaScript pour déterminer le fuseau horaire de l'utilisateur si PHP n'est pas disponible. Voici un extrait de code :

var visitortime = new Date();
var visitortimezone = "GMT " + -visitortime.getTimezoneOffset()/60;

Ce code capture le décalage horaire actuel du visiteur par rapport à GMT et le stocke dans la variable "visitortimezone".

Remarques supplémentaires

Ces deux approches supposent que le navigateur de l'utilisateur prend en charge la détection de fuseau horaire. Sinon, vous devrez peut-être recourir à des méthodes alternatives telles que GeoIP ou la saisie utilisateur.

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