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