国外项目跳板机访问时差问题

一个泰国项目,查询处理时间,页面展示与表中时间不一致问题

三个环境:

1,本地测试环境

2,跳板机环境,连接泰国生产环境

3,泰国生产环境

1,3环境,时间展示正确,与表中数据一致。

2环境,页面展示比表中数据,晚了一个小时。

如下图:表中时间为:16:51:23,页面展示时间为:17:51:23

而北京与泰国时差刚好一个小时,定位到时间差应该由时差导致。

处理思路

1,定义数据字典区别北京时间,泰国时间,UTC时间(全世界统一时间)。

2,登录时把不同字典值传入:北京(东八区):8,泰国:7,utc:0

3,时间入参:数据库时间是:年月日时分秒,传到前端是毫秒数。

代码:

export function timechange(dataTime, hms) {
  if (!dataTime) {
    return ''
  };
  //正则判断日期格式
  var reg = RegExp(/-/)
  if(reg.test(dataTime)){    
    dataTime=dataTime.replace(/-/g,'/')  
  }
  var unixTimestamp = new Date(dataTime)
  var timeZone = localStorage.getItem('timeZone');
  if(!timeZone){
    timeZone = 0;
  }
  var year = unixTimestamp.getUTCFullYear()
  var month = unixTimestamp.getUTCMonth() + 1
  var day = unixTimestamp.getUTCDate()
  var hour = unixTimestamp.getUTCHours() + Number(timeZone)
  var min = unixTimestamp.getUTCMinutes()
  var sec = unixTimestamp.getUTCSeconds()
  // unixTimestamp.getSeconds()
  if ((month) < 10) {
    month = '0' + month
  }
  if ((day) < 10) {
    day = '0' + day
  }
  if ((hour) < 10) {
    hour = '0' + hour
  }
  if ((min) < 10) {
    min = '0' + min
  }
  if ((sec) < 10) {
    sec = '0' + sec
  }
  if (hms == 'hms') { // 这个是2018530格式
    var traslateTime = year + '' + month + '' + day
  } else if (hms == 'h') { // 2018-5-30 23:59:59
    var traslateTime = year + '-' + month + '-' + day + ' ' + 23 + ':' + 59 + ':' + 59
  } else if (hms == 'hm') { // yymmdd hhmmss
    var traslateTime = year + '-' + month + '-' + day + ' ' + hour + ':' + min + ':' + sec
  } else if (hms == 's') { // 2018-5-5 00 00 00
    var traslateTime = year + '-' + month + '-' + day + ' ' + hour + ':' + min + ':' + sec
  } else { // 2018-5-30
    var traslateTime = year + '-' + month + '-' + day
  }


  // return new Date(traslateTime)
  return traslateTime
}
export default timechange

猜你喜欢

转载自blog.csdn.net/C18298182575/article/details/85293876