Вы можете использовать Date.getTimezoneOffset, который возвращает локальное смещение от GMT в минутах.Обратите внимание, что он возвращает значение с противоположным знаком, который вы можете ожидать.Таким образом, GMT-5 - это 300, а GMT + 1 - -60.
var date = "September 21, 2011 00:00:00";
var targetTime = new Date(date);
var timeZoneFromDB = -7.00; //time zone value from database
//get the timezone offset from local time in minutes
var tzDifference = timeZoneFromDB * 60 + targetTime.getTimezoneOffset();
//convert the offset to milliseconds, add to targetTime, and make a new Date
var offsetTime = new Date(targetTime.getTime() + tzDifference * 60 * 1000);