import {
  formatDate
} from 'utils/dateFormattor';

export function toEast8Date(dateStr) {
  if (typeof (dateStr) == 'undefined' || JSON.stringify(dateStr) === '{}') {
    return undefined;
  }
  let timezone = 8; //目标时区时间，东八区
  let offset_GMT = new Date().getTimezoneOffset(); // 本地时间和格林威治的时间差，单位为分钟
  let nowDate = new Date(dateStr).getTime(); // 本地时间距 1970 年 1 月 1 日午夜（GMT 时间）之间的毫秒数
  return new Date(nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000);
}


export function newEast8Date() {
  let timezone = 8; //目标时区时间，东八区
  let offset_GMT = new Date().getTimezoneOffset(); // 本地时间和格林威治的时间差，单位为分钟
  let nowDate = new Date().getTime(); // 本地时间距 1970 年 1 月 1 日午夜（GMT 时间）之间的毫秒数
  return new Date(nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000);
}


export function deepCopyDate(date) {
  return toEast8Date(formatDate(date, 'yyyy-MM-dd'));
}


export function convertDate2Str(object) {
  let ownPropertyNames = Object.getOwnPropertyNames(object);
  for (let index in ownPropertyNames) {
    let key = ownPropertyNames[index];
    if ('[object Date]' === Object.prototype.toString.call(object[key])) {
      object[key] = formatDate(object[key], 'yyyy-MM-dd hh:mm:ss');
    }
  }
}
