Вы также можете использовать службы геолокации IP, такие как ip2location. Они продают подписку на базу данных , которая будет возвращать часовой пояс, в котором находится IP-адрес. Конечно, это имеет цену. Решение Javascript будет работать, но требует, чтобы клиент его поддерживал.
Геолокация будет поддерживать любого клиента, но может дать неправильный результат в зависимости от того, как был присвоен IP-блок или если клиент использует прокси-сервер, расположенный в другом часовом поясе (скорее всего, аномизирующий прокси-сервис). Решение Javascript будет поддерживать большое разнообразие клиентов, но будет возвращать базу часовых поясов, на которой установлен компьютер, а не базу часовых поясов в реальном местоположении (путешествующий пользователь не всегда меняет время на своем компьютере). Так что нет единого решения, которое бы охватило их всех.
Использование одного из этих двух методов, чтобы сделать предположение, а затем дать пользователю возможность исправить это, было бы лучшим подходом, как мне кажется. Если вы хотите излишне использовать оба, и пусть пользователь решит, какой из них наиболее целесообразен.