Détecte automatiquement l'heure locale actuelle de l'utilisateur avec JavaScript ou PHP

J'ai souvent besoin d'afficher des informations basées sur ou influencé par un utilisateur réelleheure locale, qui diffère à travers les fuseaux horaires. Est-il un moyen fiable d'obtenir un courant de l'utilisateur en temps et/ou de fuseau horaire?

Questions Clés:

  • Code côté serveur est basé sur l'hôte du site web ou de l'utilisateur FAI
  • Code côté Client est basé sur le système de l'utilisateur horloge qui est trop facilement manipulés

Questions clés:

  • Est-il nécessaire d'identifier un utilisateur de la géo-localisation?
  • Le fournisseur de temps d'être un guide précis?
  • Utilisateurs OS horloges peuvent varier ou être modifiées par les utilisateurs?

Exemples:

Compte à rebours:

Seulement 1 heure, 3 minutes, 56 secondes pour aller!

Question: secondes pour passer en fonction sur ce, L'utilisateur de l'OS de l'horloge, les hôtes du serveur de temps (plus ou moins de décalage), ISP system de temps. C'est facile si l'horloge se termine à la même heure pour tous les fuseaux horaires, mais plus délicat si c'est un compte à rebours à quelque chose comme " minuit à l'utilisateur de la zone de l'heure locale)

Édition du journal

Élément affiché à 3:03 (il y a 10 secondes)

Question: "10 secondes" est calculé indépendamment de l'utilisateur, l'heure est ajustée pour correspondre à la zone.

Horaires d'ouverture:

Ce restaurant est ouvert jusqu'à minuit (AEST).

Question: Donner un temps comme le minuit peut être calculée par compensation à partir du serveur-côté, mais à l'aide de psudo fois comme maintenant, dans 2 heures est basé sur le temps de l'utilisateur.

PHP: à l'aide de time() sorties de l'heure du serveur. Cela peut être compensé en fonction du fuseau horaire de l'utilisateur.

JavaScript: à l'aide de Date() sorties de l'ordinateur de l'utilisateur le temps de l'horloge qui est trop facilement manipulés.

source d'informationauteur Peter Craig