// initLocalTime 模拟初始化本地时间
let initLocalTime = new Date('2018/10/10 12:00')
 
// serverTime 模拟当前服务器时间
let serverTime  = new Date()
 
/*
* timeDiff 同步本地时间和服务器时间
* localTime 本地时间 serverTime服务器时间
**/
function timeDiff(localTime,serverTime){
    //获取最新本地时间 
    let nowLocalTime = +new Date('2018/10/10 12:02');
    
    //最新服务器时间 = 最新本地时间+(服务器时间-初始化本地时间)
	return nowLocalTime + (serverTime-localTime);
}
 
// 打印服务器时间
console.log(timeDiff(initLocalTime,serverTime))
 

我的程序是这样写的

var timezone = 8; //目标时区时间,东八区
var offset_GMT = new Date().getTimezoneOffset(); // 本地时间和格林威治的时间差,单位为分钟
var nowDate = new Date().getTime(); // 本地时间距 1970 年 1 月 1 日午夜(GMT 时间)之间的毫秒数
var targetDate = new Date(nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000);
//alert("东8区现在是:" + targetDate);
var cntime = targetDate.getTime();
ar nowtime = parseInt((cntime / 1000).toString());
console.log(nowtime+'---'+checktime);
if(nowtime > checktime){
     var rangeEndTime = parseInt((cntime / 1000).toString())+chatime;
}else if(nowtime < checktime){
   var rangeEndTime = parseInt((cntime / 1000).toString())+chatime;
}