Пояс UTC является стандартом на основе которого и вычисляется отклонение часового пояса текущего пользователя. На PHP вы напрямую не определите временную зону клиента, потому что нужно опрашивать сам клиент. Это можно сделать на JavaScript функцией
getTimezoneOffset
, которая показывает отклонения в минутах от UTC. Так же можно по геолокации через PHP пробовать определять. Сначала получаем данные пользователя по IP функцией
geoip_record_by_name
, затем определяем временную зону через
geoip_time_zone_by_country_and_region
и в итоге с помощью
DateTime::getOffset
получаем отклонение временной зоны клиента в секундах. Но сразу стоит иметь ввиду, что ни один из способов не даст 100% гарантии достоверности временного пояса клиента.