este ejemplo no es mío (lo probé y parece que funciona), tal vez te sirva.
Cita: function EjemploDeTZ(){
var d, tz, s = "La hora actual local es ";
d = new Date();
tz = d.getTimezoneOffset();
if (tz > 0)
s += tz / 60 + " horas antes de GMT";
else if (tz == 0)
s += "GMT";
else
s += tz / 60 + " horas después de GMT";
return(s);
}
alert(EjemploDeTZ());
de todas formas, siempre se toma de la base del cliente por lo depende de si la pc del usuario "está en hora", mas exacto y seguro sería obtenerla del servidor (pero eso con JS no se puede).
saludos