JSFiddle - React, Tailwind, and code Playground
HTML
Original date (assume PDT / Los Angeles):
<div id="originalDate"></div>
<br/>Client TZ (in hours from GMT)
<div id="clientTZ"></div>
<br/>Adjusted date (in client timezone)
<div id="adjustedDate"></div>
JavaScript
// client TZ (offset from GMT)
var clientTZOffset = new Date().getTimezoneOffset() * -1;
// server TZ (faked here; pretend you got it from server and passed it to js)
// pretend the server is in Los Angeles (using Pacific Daylight Time, since it is 28 October 2014 today)
var Environment = {
Server: {
TimeZoneOffset: -420
}
}; // server is GMT -8
var serverTZOffset = Environment.Server.TimeZoneOffset;
var origDate = new Date();
var diff = serverTZOffset - clientTZOffset;
var clientTZHoursFromGMT = clientTZOffset / 60;
var adjDate = new Date(origDate.getTime() + diff*60000);
document.getElementById('originalDate').innerHTML = origDate.toString();
document.getElementById('adjustedDate').innerHTML = adjDate.toString();
document.getElementById('clientTZ').innerHTML = clientTZHoursFromGMT.toString();