Не так. Смещение временной зоны на клиенте возвращается в минутах, на сервере, если РНР, в секундах.
Если у вас РНР, отдавая страницу клиенту дописывайте в конце нее (перед закрывающим тегом body):
<script>var sZone = <?=date("Z") * 1000?></script>
Сервер и клиент возвращают смещение часового пояса с разными знаками по разную сторону от Гринвича. Поэтому плюсуя к смещению клиента смещение сервера получаем смещение на которое нужно скорректировать часы клиента, например:
var Zone = new Date().getTimezoneOffset() * 60 * 1000 + sZone;
var watch = new Date((new Date).getTime() + Zone); //время которое устанавливается в часах