Maison >développement back-end >tutoriel php >Comment puis-je détecter de manière fiable le fuseau horaire d'un utilisateur dans mon application Web ?

Comment puis-je détecter de manière fiable le fuseau horaire d'un utilisateur dans mon application Web ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-13 04:36:53850parcourir

How Can I Reliably Detect a User's Time Zone in My Web Application?

Détection du fuseau horaire de l'utilisateur : un guide complet

Comprendre la détection du fuseau horaire

Déterminer le fuseau horaire de vos utilisateurs est essentiel pour fournir des contenus et des services urgents. Une approche courante consiste à utiliser leur adresse IP ou leurs en-têtes HTTP.

Méthode de décalage de fuseau horaire

La méthode -new Date().getTimezoneOffset()/60 renvoie la différence entre l'heure locale du navigateur et l'UTC en heures. Cependant, cette approche a des limites :

  • Elle fournit uniquement un décalage mais pas le fuseau horaire réel.
  • Elle nécessite que le navigateur soit capable de déterminer avec précision son heure locale, ce qui peut ne soit pas toujours fiable.

Détection dynamique de fuseau horaire avec JavaScript

Une méthode plus fiable consiste à utiliser JavaScript pour détecter dynamiquement le fuseau horaire de l'utilisateur. Ceci peut être réalisé en utilisant la bibliothèque « jstz.min.js » :

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jstimezonedetect/1.0.4/jstz.min.js"></script>
<script>
  $(document).ready(function(){
    var tz = jstz.determine(); // Determine browser client's time zone
    var timezone = tz.name(); // Get time zone name (e.g., "Asia/Kolkata")
    $.post("url-to-function-that-handles-time-zone", {tz: timezone}, function(data) {
      // Process the time zone in the controller function and get
      // confirmation value. Refresh the page on success.
    });
  });
</script>

Ce code JavaScript :

  • Utilise jQuery pour déterminer le fuseau horaire de l'utilisateur à l'aide de la bibliothèque JSTZ.
  • Envoie le fuseau horaire détecté à une fonction côté serveur à l'aide d'un AJAX POST demande.
  • La fonction côté serveur traite les informations de fuseau horaire et renvoie une valeur de confirmation.
  • Si la détection du fuseau horaire réussit, la page est actualisée pour garantir que le fuseau horaire correct est appliqué.

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