date("Z")
возвращает смещение UTC относительно часового пояса сервера, а не часового пояса компьютера пользователя. Чтобы получить часовой пояс компьютера пользователя, вы можете использовать функцию javascript getTimezoneOffset()
, которая возвращает разницу во времени между временем UTC и местным временем в минутах.
<script type="text/javascript">
d = new Date();
window.location.href = "page.php?offset=" + d.getTimezoneOffset();
</script>
И в page.php
, который содержит ваш php-код, вы можете делать все что угодно с этим значением смещения. Или вместо перенаправления на другую страницу вы можете отправить значение смещения в ваш php-скрипт через Ajax в соответствии с вашими потребностями.