date.js 6.8 KB
let now = new Date(); // 当前日期
let nowDayOfWeek = now.getDay(); // 今天本周的第几天
let nowDay = now.getDate(); // 当前日
let nowMonth = now.getMonth(); // 当前月
let nowYear = now.getFullYear(); // 当前年
nowYear += (nowYear < 2000) ? 1900 : 0;

let DateUtil = {
  /**
   * 获得当前日期
   *
   * @returns
   */
  getNowDay() {
    return new Date().getTime();
  },
  /**
   * 获得今天开始时间
   *
   * @returns
   */
  getStartOfNowDay() {
    return new Date(nowYear, nowMonth, nowDay).getTime();
  },
  /**
   * 获得今天结束时间
   *
   * @returns
   */
  getEndOfNowDay() {
    return new Date(nowYear, nowMonth, nowDay).getTime() + 24 * 60 * 60 * 1000 - 1;
  },
  /**
   * 获得昨天开始时间
   *
   * @returns
   */
  getStartOfPreDay() {
    return new Date(nowYear, nowMonth, nowDay).getTime() - 24 * 60 * 60 * 1000;
  },
  /**
   * 获得昨天结束时间
   *
   * @returns
   */
  getEndOfPreDay() {
    return new Date(nowYear, nowMonth, nowDay).getTime() - 1;
  },
  /**
   * 获得明天开始时间
   *
   * @returns
   */
  getStartOfNextDay() {
    return new Date(nowYear, nowMonth, nowDay).getTime() + 24 * 60 * 60 * 1000;
  },
  /**
   * 获得明天结束时间
   *
   * @returns
   */
  getEndOfNextDay() {
    return new Date(nowYear, nowMonth, nowDay).getTime() + 24 * 60 * 60 * 1000 * 2 - 1;
  },
  /**
   * 获得本周的开始时间
   *
   * @returns
   */
  getStartDayOfWeek() {
    let day = nowDayOfWeek || 7;
    return new Date(now.getFullYear(), nowMonth, nowDay + 1 - day).getTime();
  },
  /**
   * 获得本周的结束时间
   *
   * @returns
   */
  getEndDayOfWeek() {
    let day = nowDayOfWeek || 7;
    return new Date(now.getFullYear(), nowMonth, nowDay + 7 - day).getTime() + 24 * 60 * 60 * 1000 - 1;
  },
  /**
   * 获得上周的开始时间
   *
   * @returns
   */
  getStartDayOfPreWeek() {
    // 本周开始 - 7天
    let day = nowDayOfWeek || 7;
    return new Date(now.getFullYear(), nowMonth, nowDay + 1 - day).getTime() - 7 * 24 * 60 * 60 * 1000;
  },
  /**
   * 获得上周的结束时间
   *
   * @returns
   */
  getEndDayOfPreWeek() {
    // 本周开始 - 1
    let day = nowDayOfWeek || 7;
    return new Date(now.getFullYear(), nowMonth, nowDay + 1 - day).getTime() - 1;
  },
  /**
   * 获得下周的开始时间
   *
   * @returns
   */
  getStartDayOfNextWeek() {
    // 本周周末 + 1
    let day = nowDayOfWeek || 7;
    return new Date(now.getFullYear(), nowMonth, nowDay + 7 - day).getTime() + 1;
  },
  /**
   * 获得下周的结束时间
   *
   * @returns
   */
  getEndDayOfNextWeek() {
    // 本周周末 + 7天
    let day = nowDayOfWeek || 7;
    return new Date(now.getFullYear(), nowMonth, nowDay + 7 - day).getTime() + 24 * 60 * 60 * 1000 * 7 - 1;
  },
  /**
   * 获得本月的开始时间
   *
   * @returns
   */
  getStartDayOfMonth() {
    let monthStartDate = new Date(nowYear, nowMonth, 1);
    return monthStartDate.getTime();
  },
  /**
   * 获得本月的结束时间
   *
   * @returns
   */
  getEndDayOfMonth() {
    let monthEndDate = new Date(nowYear, nowMonth, this.getMonthDays());
    return monthEndDate.getTime() + 24 * 60 * 60 * 1000 - 1;
  },
  /**
   * 获得上月的开始时间
   *
   * @returns
   */
  getStartDayOfPreMonth() {
    let monthStartDate = "";
    if (nowMonth == 0) {
      monthStartDate = new Date(nowYear - 1, 12, 1);
    } else {
      monthStartDate = new Date(nowYear, nowMonth - 1, 1);
    }
    return monthStartDate.getTime();
  },
  /**
   * 获得上月的结束时间
   *
   * @returns
   */
  getEndDayOfPreMonth() {
    // 当前月-1
    let monthEndDate = new Date(nowYear, nowMonth, 1);
    return monthEndDate.getTime() - 1;
  },
  /**
   * 获得下月的开始时间
   *
   * @returns
   */
  getStartDayOfNextMonth() {
    // 当月最后一天+24小时
    let monthStartDate = new Date(nowYear, nowMonth, this.getMonthDays());
    return monthStartDate.getTime() + 24 * 60 * 60 * 1000;
  },
  /**
   * 获得下月的结束时间
   *
   * @returns
   */
  getEndDayOfNextMonth() {
    let monthEndDate = '';
    if (nowMonth == 11) {
      monthEndDate = new Date(nowYear + 1, 1, 31);
    } else {
      monthEndDate = new Date(nowYear, nowMonth + 1, 31);
    }
    return monthEndDate.getTime();
  },
  /**
   * 获得本月天数
   *
   * @returns
   */
  getMonthDays() {
    let monthStartDate = new Date(nowYear, nowMonth, 1);
    let monthEndDate = new Date(nowYear, nowMonth + 1, 1);
    let days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
    return days;
  },
  /**
   * 获得本年的开始时间
   *
   * @returns
   */
  getStartDayOfYear() {
    let monthStartDate = new Date(nowYear, 0, 1);
    return monthStartDate.getTime();
  },
  /**
   * 获得本年的结束时间
   *
   * @returns
   */
  getEndDayOfYear() {
    let monthEndDate = new Date(nowYear, 11, 31);
    return monthEndDate.getTime() + 24 * 60 * 60 * 1000 - 1;
  },
  /**
   * 获得去年的开始时间
   *
   * @returns
   */
  getStartDayOfPreYear() {
    let monthStartDate = new Date(nowYear - 1, 0, 1);
    return monthStartDate.getTime();
  },
  /**
   * 获得去年的结束时间
   *
   * @returns
   */
  getEndDayOfPreYear() {
    let monthEndDate = new Date(nowYear - 1, 11, 31);
    return monthEndDate.getTime() + 24 * 60 * 60 * 1000 - 1;
  },
  /**
   * @param 日期格式化
   * @returns {String}
   */
  formatDate(timestamp) {
    if (timestamp) {
      const date = new Date(+timestamp);
      let myYear = date.getFullYear();
      let myMonth = date.getMonth() + 1;
      let myWeekday = date.getDate();

      if (myMonth < 10) {
        myMonth = "0" + myMonth;
      }
      if (myWeekday < 10) {
        myWeekday = "0" + myWeekday;
      }
      return (myYear + "-" + myMonth + "-" + myWeekday);
    } else {
      return '无期限'
    }
  },

  UTCFormat(value) {
    if (value) {
      let date = new Date(value);
      return date.toLocaleString().substring(0, 10)
    } else {
      return "--"
    }
  },

  formatDateTimeByTime(time) {
    //获取年份
    let year = new Date(time).getFullYear();
    //获取月份
    let month = new Date(time).getMonth() + 1;
    if (month < 10) {
      month = "0" + month;
    }
    //获取日
    let date = new Date(time).getDate();
    if (date < 10) {
      date = "0" + date;
    }
    //获取小时
    let h1 = new Date(time).getHours() < 10 ? '0' + new Date(time).getHours() : new Date(time).getHours();
    //获取分钟
    let m1 = new Date(time).getMinutes() < 10 ? '0' + new Date(time).getMinutes() : new Date(time).getMinutes();
    //获取秒
    let s1 = new Date(time).getSeconds() < 10 ? '0' + new Date(time).getSeconds() : new Date(time).getSeconds();
    //组合格式为年-月-日 时:分:秒(2021-07-05 21:21:21)
    return year + "-" + month + "-" + date + " " + h1 + ":" + m1 + ":" + s1
  }
}

export default DateUtil