Comment obtenir le fuseau horaire à l'aide de jquery?
Je voudrais obtenir leur fuseau horaire, avec des noms comme 'Asia/Calcutta' ou 'Australie/Darwin'
J'ai php installé sur mon serveur et son temps de jeu à 'UTC'
OriginalL'auteur user967144 | 2011-11-11
Vous devez vous connecter pour publier un commentaire.
Ceci est mon premier post ici, mais j'espère que je peux aider quelqu'un. Je me suis senti obligé car ce site m'a beaucoup aidé. Grâce stackoverflow membres!
http://www.pageloom.com/automatic-timezone-detection-with-javascript
De ce que je comprends sur ce code JavaScript, il est très précis et sera en mesure de retourner le décalage à partir de l'UST, le correspondant Olson Base de données de fuseau horaire nom, et de gérer l'heure d'été de la question (ex. -5:00, America/New_york, true).
http://www.php.net/manual/en/timezones.america.php
Le lien ci-dessus est juste une liste de les supportés par php paramètres de fuseau horaire, qui, autant que je peux aligner avec ce code JavaScript (je suis certain que cela est bénéfique, je ne sais pas pourquoi mais je suis toujours en train d'écrire mon code et je suis un peu nouveau pour php/mysql).
Le seul obstacle, vous devrez faire face après l'obtention de ce code de travail sur votre page html sera probablement obtenir ces valeurs pour le support php et mysql si c'est ce que vous avez besoin. J'ai réalisé ce par l'envoi de ces valeurs de $.post à l'aide de JQuery. Je pense que c'est la meilleure façon de le faire (il vous plaît quelqu'un me corrige si je me trompe). Je crois que les autres solutions sont à l'aide d'un AJAX de commande (plus compliqué) ou les cookies(je crois?).
Après que j'ai obtenu les valeurs de la Java-script du code sur le serveur (PHP) j'ai stocké comme variables de session afin qu'ils changeraient si l'utilisateur sur mon site connecté à partir d'un autre fuseau horaire que d'habitude. Cependant, elles peuvent facilement être enregistrées dans la base de données.
Si vous utilisez JQuery route cela doit être dans l'en-tête du document html où l' $.le post est en cours d'exécution.
La plus à jour de timezonedetect de script peuvent être consultées sur le premier url que j'ai posté.
La réception de fichier, dans ce cas tzdetect.php devrait ressembler à ceci si vous voulez que les données stockées dans des variables de session.
OriginalL'auteur Scott
Pour détecter le décalage horaire vous pouvez utiliser cette fonction:
Exemple, vous pouvez voir ici
OriginalL'auteur ValeriiVasin
Votre question est vraiment à propos de Javascript plutôt que le PHP, car il dépend des capacités des clients.
Comme je le comprends, Javascript permet de déterminer le courant de décalage de fuseau horaire (la différence entre l'heure UTC et l'heure locale), mais qui ne pas vous permettent de déterminer sans ambiguïté le fuseau horaire. De nombreux fuseaux horaires de partager le même décalage à un moment donné dans le temps, mais diffèrent à d'autres moments, en termes de respecter l'heure d'été et à quel point ils changent dans et hors de l'heure d'été.
Si vous devez absolument le fuseau horaire, vous pouvez établir une liste de possible les fuseaux horaires, et à les présenter à l'utilisateur tout en leur permettant de remplacer le rétrécissement de la décision, le choix de tout fuseau horaire.
Encore une fois, cela dépend vraiment de ce que vous essayez d'atteindre.
Dans ce tableau? Ce n'est pas vraiment clair ce que vous demandez. Pour déterminer la durée de zones, vous devez effectuer une itération sur tous de fuseaux horaires et de trouver ceux avec le même décalage. Vous pouvez trouver tous les fuseaux horaires à l'aide de
DateTimeZone::listIdentifiers
.j'ai trouvé un lien ici, pourriez-vous avoir un coup d'oeil à la fonction posté par BrightNail? codingforums.com/showthread.php?t=139888
C'est ni complète ni autorité. Il peut y avoir plusieurs fois les zones qui ont le même décalage d'heure d'été, le même offset standard, mais le changement à différents moments.
Ainsi quel est le meilleur moyen? Ce que je suis vraiment à la recherche est de connaître les navigateurs fuseau horaire nom afin que je puisse modifier mon horaire du temps pour eux. J'ai besoin de fuseau horaire noms, parce que je suis en utilisant DateTime fonction en php
OriginalL'auteur Jon Skeet
Vous n'avez pas besoin de jQuery pour ce faire. Essayez le code suivant:
Il alertera courant de décalage horaire à partir du navigateur (en minutes).
Voir cette jsfiddle comme une preuve.
Je pense que vous aurez besoin de le convertir pour le nom de fuseau horaire sur votre propre. Si vous voulez les noms pour être cohérent, vous ne devriez pas dépendre sur le navigateur de l'utilisateur.
Vous pouvez utiliser ce code (voir cette jsfiddle):
Cependant je ne voudrais pas compter sur cet trop.
Voir la version mise à jour, ce maintenant popups le nom que vous attendez.
merci mais ce n'est pas fiable?
Non, il n'est pas fiable - il est basé sur le décalage, de sorte que le fuseau horaire change selon si l'heure d'été est en vigueur ou non. Mais je ne vois pas d'autre option, si vous voulez compter sur des données à partir du navigateur. C'est la meilleure solution.
Ce n'est pas "fiable", c'est simplement faux. Un fuseau horaire est un ensemble de règles appliquées à une certaine région. Le décalage dans le temps dépend de la période de l'année, et sur les règles actuelles (par exemple, la Russie a récemment renoncé à l'heure d'été). Il n'y a aucun moyen de deviner un fuseau horaire à partir de seulement un décalage. jstz ne présente assez bien, et il fait beaucoup plus de sondage.
OriginalL'auteur Tadeck
Cela donnera à la sortie:
Asia/Kolkata
OriginalL'auteur Santhosh J
Vous pouvez obtenir le le décalage horaire. Que vous pouvez utiliser pour calculer le fuseau horaire approximatif. Vous pouvez garder un associative liste du décalage horaire et de la
names
.Cette méthode ne donne pas des valeurs exactes, cependant.
Merci! Vous avez absolument raison, vous ne pouvez faire de l'approximatif, du fuseau horaire de l'offset. L'édition de la réponse.
OriginalL'auteur abhinav