2017-07-13 2 views
0

Je veux des fuseaux horaires de diverses connexions d'utilisateur à partir d'emplacements différents.Nom du pays et de la région en PHP pour le fuseau horaire de l'adresse IP

Pour cela j'ai reçu l'adresse IP dans Laravel 5.4 $request->ip().

En utilisant json_decode(file_get_contents("http://ipinfo.io/{$ipaddr}/json")); J'ai obtenu le nom du pays et de la région.

avec ce pays et le nom de la région, je vais obtenir PHP nom du fuseau horaire comme « Europe/Londres »

Mon problème:
Pour un nom de région des emplacements est nombres à deux chiffres dans cette fonction. Mais je ne reçois pas de chiffres. Donc, le fuseau horaire est nul. J'utilise this pour obtenir des fuseaux horaires pour le réglage date_default_timezone_set();.

Existe-t-il d'autres façons d'obtenir des fuseaux horaires?

+0

que _do_ obtenez-vous pour ces emplacements? Longitude latitude? Pays? –

+0

Sidenote après avoir rencontré certaines frustrations liées à l'IP, en fonction de la configuration de votre serveur, '$ request-> ip()' ** peut ne pas ** retourner l'adresse IP de votre * client; vous aurez besoin de regarder dans une autre méthode pour récupérer de manière fiable cela. –

+0

Notez également que le simple fait d'obtenir un pays/une région ne signifie pas que ceux-ci peuvent être créés pour créer un identifiant de fuseau horaire valide. –

Répondre

0

Utilisez http://freegeoip.net/{format}/{ip}, vous pouvez également obtenir le fuseau horaire.