Я скачал https://github.com/maxmind/GeoIP2-php и база данных http://dev.maxmind.com/geoip/geoip2/geolite2/ поймать часовой пояс для посетителя страницы.
require_once('GeoIp2/vendor/autoload.php');
$reader = new Reader('GeoIp2/GeoLite2-City.mmdb');
$record = $reader->city($_SERVER['REMOTE_ADDR']);
echo $record->location->timeZone;
Он отлично работает с IPv4, но IPv6 не работает. Вывод пуст без ошибок. Здесь чего-то не хватает?
Не каждый IP-адрес связан с часовым поясом. Это особенно актуально для адресов IPv6, где данные геолокации более точные. Учитывая, что вы получаете запись обратно, я подозреваю, что IP-адрес имеет только данные на уровне страны без часового пояса. Вы можете добавить echo json_encode($record);
Ваш файл, чтобы увидеть, какие данные в поиске.
Других решений пока нет …