d.setHours(
h + 3, m + d.getTimezoneOffset()); - во, но данные/список отдает сервер, а значит явно прописать "h + 3" нельзя, это сервер должен получить и вставить. Сервер всегда будет корректировать смещение времени с учетом "временных революций", которые в нашей стране дай бог может быть и закончились, но кто его знает...
А сервер и отдает смещение к востоку как положительное, а клиент наоборот возвращает отрицательное. То есть "искусственно подгонять под ответ время" и не требуется, да и может быть причиной ошибок.