177 votes

obtenir le fuseau horaire du client à partir du navigateur

Existe-t-il un moyen fiable d'obtenir un fuseau horaire à partir du navigateur client? J'ai vu les liens suivants, mais je veux une solution plus robuste.

Détecter automatiquement un fuseau horaire avec JavaScript

Détection du fuseau horaire en JavaScript

87voto

mbayloon Points 932

Regardez ce site pageloom c'est utile

téléchargez jstz.min.js et ajoutez une fonction à votre page html

     <script language="javascript">
        function getTimezoneName() {
            timezone = jstz.determine_timezone()
            return timezone.name();
        }
    </script>
 

et appelez cette fonction depuis votre balise display

54voto

Johannes Hoff Points 1330

Pour l'instant, le meilleur pari est probablement jstz comme suggéré dans mbayloon de réponse.

Pour être complet, il convient de mentionner qu'il existe une norme sur son chemin: Intl. Vous pouvez voir cela en Chrome déjà:

> Intl.DateTimeFormat().resolved.timeZone
"America/Los_Angeles"

(Ce n'est pas réellement suivre la norme, ce qui est une raison de plus pour coller avec la bibliothèque)

4voto

Voici un jsfiddle

Son fournit l'abbrivation du fuseau horaire de l'utilisateur actuel.

Voici l'échantillon de code

 var tz = jstz.determine();
console.log(tz.name());
console.log(moment.tz.zone(tz.name()).abbr(new Date().getTime()));
 

-17voto

Florian Margaine Points 16927

Non, il n'y a pas de moyen fiable unique et il n'y en aura jamais. Pensiez-vous vraiment pouvoir faire confiance au client?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X