Единственное, что должно помешать вам использовать javascript, это если а) вы просто обслуживаете API и не контролируете содержимое страницы; или b) клиент все равно заблокировал JavaScript. С помощью javascript это самый надежный метод, если не считать простого запроса пользователя ввести свой часовой пояс.
Cookies или Ajax будут работать. Для облегчения использования файлов cookie, поместите этот javascript в раздел заголовка на любой странице, чтобы добавить файл cookie ...
<script>
d = new Date;
gmtoffset = d.getTimezoneOffset() / 60;
document.cookie = 'gmtoffset=' + gmtoffset;
</script>
Затем в ваших PHP-скриптах прочитайте $_COOKIE['gmtoffset']
, чтобы узнать их часовой пояс относительно GMT.
ИМХО, время клиента с часовым поясом должно было быть стандартным для отрасли заголовком запроса.
Редактировать: убрал дату истечения срока действия из примера cookie, так как это может вызвать проблемы после 1 января 2012 года.