vue DateUtil日期工具类

该工具类已打包到npm i vue-zeary-ctrl组件中,可下载组件使用。

var now = new Date(); // 当前日期
var nowDayOfWeek = now.getDay(); // 今天本周的第几天
var nowDay = now.getDate(); // 当前日
var nowMonth = now.getMonth(); // 当前月
var nowYear = now.getYear(); // 当前年
nowYear += nowYear < 2000 ? 1900 : 0;
const format = time => {
  let ymd = "";
  let mouth =
    time.getMonth() + 1 >= 10
      ? time.getMonth() + 1
      : "0" + (time.getMonth() + 1);
  let day = time.getDate() >= 10 ? time.getDate() : "0" + time.getDate();
  ymd += time.getFullYear() + "-"; // 获取年份。
  ymd += mouth + "-"; // 获取月份。
  ymd += day; // 获取日。
  return ymd; // 返回日期。
};
var DateUtil = {
  /***
   * 已知开始时间和结束时间 计算出中间的所有日期
   */
  getAllDate(start, end) {
    let dateArr = [];
    let startArr = start.split("-");
    let endArr = end.split("-");
    let db = new Date();
    db.setUTCFullYear(startArr[0], startArr[1] - 1, startArr[2]);
    let de = new Date();
    de.setUTCFullYear(endArr[0], endArr[1] - 1, endArr[2]);
    let unixDb = db.getTime();
    let unixDe = de.getTime();
    let stamp;
    const oneDay = 24 * 60 * 60 * 1000;
    for (stamp = unixDb; stamp <= unixDe; ) {
      dateArr.push(format(new Date(parseInt(stamp))));
      stamp = stamp + oneDay;
    }
    return dateArr;
  },
  /**
   * 获得当前日期
   *
   * @returns
   */
  getNowDay() {
    return this.formatDate(new Date());
  },
  /**
   * 获得本周的开始时间
   *
   * @returns
   */
  getStartDayOfWeek() {
    var day = nowDayOfWeek || 7;
    return this.formatDate(
      new Date(now.getFullYear(), nowMonth, nowDay + 1 - day)
    );
  },
  /**
   * 获得本周的结束时间
   *
   * @returns
   */
  getEndDayOfWeek() {
    var day = nowDayOfWeek || 7;
    return this.formatDate(
      new Date(now.getFullYear(), nowMonth, nowDay + 7 - day)
    );
  },
  /**
   * 获得本月的开始时间
   *
   * @returns
   */
  getStartDayOfMonth() {
    var monthStartDate = new Date(nowYear, nowMonth, 1);
    return this.formatDate(monthStartDate);
  },
  /**
   * 获得本月的结束时间
   *
   * @returns
   */
  getEndDayOfMonth() {
    var monthEndDate = new Date(nowYear, nowMonth, this.getMonthDays());
    return this.formatDate(monthEndDate);
  },
  /**
   * 获得近几个月开始日期
   *
   * @returns
   */
  getStartDayOfLastMonth(monthNum, isTheDay) {
    let year = nowYear; //获取当前日期的年份
    let month = nowMonth; //获取当前日期的月份
    let day = isTheDay && isTheDay === true ? nowDay : nowDay - 1; //获取当前日期的日
    let days = this.getMonthDays(); //获取当前日期中月的天数
    let year2 = year;
    let month2 = parseInt(month) - monthNum;
    if (month2 <= 0) {
      year2 =
        parseInt(year2) -
        parseInt(month2 / 12 == 0 ? 1 : Math.abs(parseInt(month2 / 12)) + 1);
      month2 = 12 - (Math.abs(month2) % 12);
    }
    let day2 = day;
    let days2 = new Date(year2, month2, 0);
    days2 = days2.getDate();
    if (day2 > days2) {
      day2 = days2;
    }
    if (month2 < 10) {
      month2 = "0" + month2;
    }
    let monthStartDate = new Date(year2, month2, day2);
    return this.formatDate(monthStartDate);
  },
  /**
   * 获得近几个天开始日期
   *
   * @returns
   */
  getStartDayOfLastDay(day) {
    var today = new Date();
    var targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day;
    today.setTime(targetday_milliseconds); //注意,这行是关键代码
    var tYear = today.getFullYear();
    var tMonth = today.getMonth();
    var tDate = today.getDate();
    var monthStartDate = new Date(tYear, tMonth, tDate);
    return this.formatDate(monthStartDate);
  },
  /**
   * 获得本月天数
   *
   * @returns
   */
  getMonthDays() {
    var monthStartDate = new Date(nowYear, nowMonth, 1);
    var monthEndDate = new Date(nowYear, nowMonth + 1, 1);
    var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
    return days;
  },
  /**
   * @param 日期格式化
   * @returns {String}
   */
  formatDate(date) {
    var myyear = date.getFullYear();
    var mymonth = date.getMonth() + 1;
    var myweekday = date.getDate();

    if (mymonth < 10) {
      mymonth = "0" + mymonth;
    }
    if (myweekday < 10) {
      myweekday = "0" + myweekday;
    }
    return myyear + "-" + mymonth + "-" + myweekday;
  }
};

export default {
  DateUtil
};

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值