对日,周,月,年的时间处理

105 阅读2分钟

时间格式处理

import moment from 'moment';
function updateMoment() {
  moment.updateLocale("en", {
    week: {
      dow: +sessionStorage.getItem("weekFirstDay")
    }
  });
}
/*eslint-disable */
function GetNumberOfDays(date1, date2) {//获得天数
  //date1:开始日期,date2结束日期
  var a1 = Date.parse(new Date(date1));
  var a2 = Date.parse(new Date(date2));
  var day = parseInt((a2 - a1) / (1000 * 60 * 60 * 24));//核心:时间戳相减,然后除以天数
  return day;
}
function transformTime(type, option, period) {
  updateMoment();
  let BeginTime;
  let EndTime;
  let utcBeginTime;
  let utcEndTime;
  let gapTime;
  switch (type) {
    case 'day':
      switch (option) {
        case 'today':
          BeginTime = moment().startOf('day').format();
          EndTime = moment().endOf('day').format();
          utcBeginTime = moment().startOf('day').utc().format();
          utcEndTime = moment().endOf('day').utc().format();
          break;
        case 'yesterday':
          BeginTime = moment().subtract(1, 'days').startOf('day').format();
          EndTime = moment().subtract(1, 'days').endOf('day').format();
          utcBeginTime = moment().subtract(1, 'days').startOf('day').utc().format();
          utcEndTime = moment().subtract(1, 'days').endOf('day').utc().format();
          break;
        case 'custom':
          BeginTime = moment(period).startOf('day').format();
          EndTime = moment(period).endOf('day').format();
          utcBeginTime = moment(period).startOf('day').utc().format();
          utcEndTime = moment(period).endOf('day').utc().format();
          break;
        default:
          return;
      }
      break;
    case 'week':
      switch (option) {
        case 'thisWeek':
          BeginTime = moment().startOf('week').format();
          EndTime = moment().endOf('week').format();
          utcBeginTime = moment().startOf('week').utc().format();
          utcEndTime = moment().endOf('week').utc().format();
          break;
        case 'lastWeek':
          BeginTime = moment().week(moment().week() - 1).startOf('week').format();
          EndTime = moment().week(moment().week() - 1).endOf('week').format();
          utcBeginTime = moment().week(moment().week() - 1).startOf('week').utc().format();
          utcEndTime = moment().week(moment().week() - 1).endOf('week').utc().format();
          break;
        case 'custom':
          BeginTime = moment(period).startOf('week').format();
          EndTime = moment(period).endOf('week').format();
          utcBeginTime = moment(period).startOf('week').utc().format();
          utcEndTime = moment(period).endOf('week').utc().format();
          break;
        default:
          return;
      }
      break;
    case 'month':
      switch (option) {
        case 'thisMonth':
          BeginTime = moment().startOf('month').format();
          EndTime = moment().endOf('month').format();
          utcBeginTime = moment().startOf('month').utc().format();
          utcEndTime = moment().endOf('month').utc().format();
          break;
        case 'lastMonth':
          BeginTime = moment().month(moment().month() - 1).startOf('month').format();
          EndTime = moment().month(moment().month() - 1).endOf('month').format();
          utcBeginTime = moment().month(moment().month() - 1).startOf('month').utc().format();
          utcEndTime = moment().month(moment().month() - 1).endOf('month').utc().format();
          break;
        case 'custom':
          BeginTime = moment(period).startOf('month').format();
          EndTime = moment(period).endOf('month').format();
          utcBeginTime = moment(period).startOf('month').utc().format();
          utcEndTime = moment(period).endOf('month').utc().format();
          break;
        default:
          return;
      }
      break;
    case 'year':
      switch (option) {
        case 'thisYear':
          BeginTime = moment().startOf('year').format();
          EndTime = moment().endOf('year').format();
          utcBeginTime = moment().startOf('year').utc().format();
          utcEndTime = moment().endOf('year').utc().format();
          break;
        case 'lastYear':
          BeginTime = moment().year(moment().year() - 1).startOf('year').format();
          EndTime = moment().year(moment().year() - 1).endOf('year').format();
          utcBeginTime = moment().year(moment().year() - 1).startOf('year').utc().format();
          utcEndTime = moment().year(moment().year() - 1).endOf('year').utc().format();
          break;
        case 'custom':
          BeginTime = moment(period).startOf('year').format();
          EndTime = moment(period).endOf('year').format();
          utcBeginTime = moment(period).startOf('year').utc().format();
          utcEndTime = moment(period).endOf('year').utc().format();
          break;
        default:
          return;
      }
      break;
    case 'custom':
      BeginTime = moment(period[0]).startOf('day').format();
      EndTime = moment(period[1]).endOf('day').format();
      utcBeginTime = moment(period[0]).startOf('day').utc().format();
      utcEndTime = moment(period[1]).endOf('day').utc().format();
      gapTime=GetNumberOfDays(BeginTime,EndTime);
      break;
    default:
      return;
  }
  return {
    BeginTime,
    EndTime,
    utcBeginTime,
    utcEndTime,
    gapTime
  };
}

export {
  transformTime
};

时区转换

computeTime(time) {
      let now = new Date();
      let offset = now.getTimezoneOffset() * 60000;
      let d = isoTimeToUtcTime(time);
      let wishTime = d + (-offset);
      let BeginTime = '';
      let EndTime = '';
      BeginTime = wishTime - this.configForm.BeforeTime * 1000;
      EndTime = wishTime + this.configForm.AfterTime * 1000;
      return {BeginTime, EndTime};
    }

12小时制和24小时制

image.png