You don't need moment to do this, it is a native javascript function:
var offset = new Date().getTimezoneOffset();
Then you just compare the offset from client (the "client timezone") to the offset from server (the "user timezone", assuming stored in a DB or profile somehow) and apply the difference if adjusting datetime values in the presentation layer (for example; you would also combine this with localizing the date display to the client's/user's culture typically).
Example:
If your client TZ offset is -480 (-8 GMT, AKA "PST") and your server TZ offset is -8, they cancel each other out when displaying adjusted timezone-relevant data from server. Note that by "server timezone" this could also refer to the known user's timezone in your application, then just compare the timezone offset from moment for that region to the client TZ offset.
Fiddle using native JS: http://jsfiddle.net/34qfwf1y/1/
Code:
// client TZ (offset from GMT)
var clientTZOffset = new Date().getTimezoneOffset() * -1;
// user home TZ from server (faked here; pretend you got it from server and passed it to js)
// pretend user's home is in Los Angeles (using Pacific Daylight Time since it is 28 October 2014 today)
var User = {
Profile: {
TimeZoneOffset: -420
}
}; // server is GMT -7
var origDate = new Date();
var diff = User.Profile.TimeZoneOffset - clientTZOffset;
var clientTZHoursFromGMT = clientTZOffset / 60;
var homeTZHoursFromGMT = User.Profile.TimeZoneOffset / 60;
var adjDate = new Date(origDate.getTime() + diff*60000);
document.getElementById('isHomeTZ').innerHTML = (clientTZHoursFromGMT===homeTZHoursFromGMT).toString().toUpperCase();
document.getElementById('originalDate').innerHTML = origDate.toString();
document.getElementById('adjustedDate').innerHTML = adjDate.toString();
document.getElementById('homeTZ').innerHTML = homeTZHoursFromGMT.toString();
document.getElementById('clientTZ').innerHTML = clientTZHoursFromGMT.toString();
Client is in user's home time zone (PDT):
<div id="isHomeTZ"></div>
<br/>Original date (ignore TZ display, pretend it is PDT / Los Angeles):
<div id="originalDate"></div>
<br/>Saved User's Home TZ (simulated; in hours from GMT)
<div id="homeTZ"></div>
<br/>Client TZ (in hours from GMT)
<div id="clientTZ"></div>
<br/>Adjusted date (in client timezone)
<div id="adjustedDate"></div>