// 引入 moment 时间插件
import moment from 'moment'
moment.updateLocale('zh-cn', { week: {
  dow: 1, // 星期的第一天是星期一
  doy: 7 // 年份的第一周必须包含1月1日 (7 + 1 - 1)
} })
// 获取今日/昨日/本周/上周/本月/上月 时间
export default {
  // 获取今日的开始结束时间
  getToday () {
    const obj = {
      starttime: '',
      endtime: ''
    }
    obj.starttime = moment(moment().startOf('day').valueOf()).format('YYYY-MM-DD 00:00:00')
    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD 23:59:59')
    return obj
  },
  // 获取今日的开始结束时间  年月日时分秒
  getTodayTime () {
    const obj = {
      starttime: '',
      endtime: ''
    }
    obj.starttime = moment(moment().startOf('day').valueOf()).format('YYYY-MM-DD HH:mm:ss')
    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD HH:mm:ss')
    return obj
  },
  //  近7天
  getRecentday () {
    const obj = {
      starttime: '',
      endtime: ''
    }
    obj.starttime = moment().subtract('days', 6).format('YYYY-MM-DD 00:00:00')
    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD 23:59:59')
    return obj
  },
  //  近7天  年月日时分秒
  getRecentTime () {
    const obj = {
      starttime: '',
      endtime: ''
    }
    obj.starttime = moment().subtract('days', 6).format('YYYY-MM-DD HH:mm:ss')
    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD HH:mm:ss')
    return obj
  },
  //  近3天
  getThreeday () {
    const obj = {
      starttime: '',
      endtime: ''
    }
    obj.starttime = moment().subtract('days', 2).format('YYYY-MM-DD 00:00:00')
    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD 23:59:59')
    return obj
  },
  // 获取昨日的开始结束时间
  getYesterday () {
    const obj = {
      starttime: '',
      endtime: ''
    }
    obj.starttime = moment(moment().add(-1, 'days').startOf('day').valueOf()).format('YYYY-MM-DD 00:00:00')
    obj.endtime = moment(moment().add(-1, 'days').endOf('day').valueOf()).format('YYYY-MM-DD 23:59:59')
    return obj
  },
  // 获取当前周的开始到当天结束时间
  getCurrWeekDays () {
    const obj = {
      starttime: '',
      endtime: ''
    }
    obj.starttime = moment(moment().week(moment().week()).startOf('week').add('days').valueOf()).format('YYYY-MM-DD 00:00:00')
    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD 23:59:59')
    return obj
  },
  // 获取上一周的开始结束时间
  getLastWeekDays () {
    const obj = {
      starttime: '',
      endtime: ''
    }
    obj.starttime = moment(moment().week(moment().week() - 1).startOf('week').add('days').valueOf()).format('YYYY-MM-DD 00:00:00')
    obj.endtime = moment(moment().week(moment().week() - 1).endOf('week').add('days').valueOf()).format('YYYY-MM-DD 23:59:59')
    return obj
  },
  // 获取上一月的今天到当月的今天
  getCurrMonthDays () {
    const obj = {
      starttime: '',
      endtime: ''
    }
    obj.starttime = moment(moment().month(moment().month() - 1).valueOf()).format('YYYY-MM-DD 00:00:00')
    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD 23:59:59')
    return obj
  },
  // 获取当前月的开始到当天结束时间
  getCurrLastMonthDays () {
    const obj = {
      starttime: '',
      endtime: ''
    }
    obj.starttime = moment(moment().month(moment().month()).startOf('month').valueOf()).format('YYYY-MM-DD 00:00:00')
    obj.endtime = moment(moment().valueOf()).format('YYYY-MM-DD 23:59:59')
    return obj
  },
  // 获取上一个月的开始结束时间
  getLastMonthDays () {
    const obj = {
      starttime: '',
      endtime: ''
    }
    obj.starttime = moment(moment().month(moment().month() - 1).startOf('month').valueOf()).format('YYYY-MM-DD 00:00:00')
    obj.endtime = moment(moment().month(moment().month() - 1).endOf('month').valueOf()).format('YYYY-MM-DD 23:59:59')
    return obj
  },
  // 获取三月前的今天到当月的今天
  getThreeMonthDays () {
    const obj = {
      starttime: '',
      endtime: ''
    }
    obj.starttime = moment(moment().month(moment().month() - 3).valueOf()).format('YYYY-MM-DD 00:00:00')
    obj.endtime = moment(moment().month(moment().month() - 3).endOf('month').valueOf()).format('YYYY-MM-DD 23:59:59')
    return obj
  },
  // 获取近三个月的开始结束时间
  getThreeMonthCurrDays () {
    const obj = {
      starttime: '',
      endtime: ''
    }
    obj.starttime = moment(moment().month(moment().month() - 2).startOf('month').valueOf()).format('YYYY-MM-DD 00:00:00')
    obj.endtime = moment(moment().month(moment().month() - 2).endOf('month').valueOf()).format('YYYY-MM-DD 23:59:59')
    return obj
  },
  // 获取某年某个月的开始和结束时间
  getBeDateByMonth (str) {
    return {
      	beginDate: moment(str).startOf('month').format('YYYY-MM-DD 00:00:00'),
      	endDate: moment(str).endOf('month').format('YYYY-MM-DD 23:59:59')
    }
  },
  // 获取某一年的开始和结束时间
  getBeDateByYear (year) {
    return {
      	beginDate: moment(year.toString()).startOf('year').format('YYYY-MM-DD 00:00:00'),
      	endDate: moment(year.toString()).endOf('year').format('YYYY-MM-DD 23:59:59')
    }
  },
  // 获取某年某季度的开始和结束时间
  getQuarterByYear (year, quarter) {
    if (year && quarter) {
      const start = moment([year]).quarter(quarter).startOf('quarter')
      const end = moment([year]).quarter(quarter).endOf('quarter')
      return {
        start: start.format('YYYY-MM-DD 00:00:00'),
        end: end.format('YYYY-MM-DD 23:59:59')
      }
    } else {
      return {}
    }
  }
}
