43 votes

Fuseau horaire de l'utilisateur

Duplicata possible : Comment puis-je déterminer le fuseau horaire d'un internaute ?

Quelle est la meilleure façon de faire cela ? php ou javascript. Quelqu'un peut-il me fournir des extraits ? Merci.

36voto

Mikhus Points 619

Côté serveur, ce ne sera pas aussi précis qu'avec JavaScript. En attendant, il est parfois nécessaire de résoudre une telle tâche. Juste pour partager la solution possible dans ce cas, j'écris cette réponse.

Si vous devez déterminer le fuseau horaire de l'utilisateur, cela peut être fait via les services Geo-IP. Certains d'entre eux fournissent le fuseau horaire. Par exemple, celui-ci ( http://smart-ip.net/geoip-api ) pourrait aider :

 <?php
$ip     = $_SERVER['REMOTE_ADDR']; // means we got user's IP address 
$json   = file_get_contents( 'http://smart-ip.net/geoip-json/' . $ip); // this one service we gonna use to obtain timezone by IP
// maybe it's good to add some checks (if/else you've got an answer and if json could be decoded, etc.)
$ipData = json_decode( $json, true);

if ($ipData['timezone']) {
    $tz = new DateTimeZone( $ipData['timezone']);
    $now = new DateTime( 'now', $tz); // DateTime object corellated to user's timezone
} else {
   // we can't determine a timezone - do something else...
}

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