Есть сервер находится в России, соответственно время (timezone) берется с место нахождение сервера(Москва). Когда заходя с других стран, таймзон показывает время место нахождение сервера, а не страны или таймзони. Как это делается, какие есть способы ?
Например соцсети показывают ту временую зону где человек находится.
В соцсетях указывается город твоего места обитания, поэтому не сложно в базе посмотреть у какого города какая timezone. В вашем случае нужно комбинировать geoip и timezone.