业务上会用到的时间处理(持续更新)

285 阅读1分钟

这是我参与更文挑战的第2天,活动详情查看: 更文挑战

日期递增递减

function Date(date, days) {
      var d = new Date(date);
      d.setDate(d.getDate() +/- days); 
      var m = d.getMonth() + 1;
      return (
        d.getFullYear() +
        "-" +
        this.time_format(m) +
        "-" +
        this.time_format(d.getDate())
      );
},
      
function time_format(num) {
      return num < 10 ? "0" + num : num;
}  
Date('2020-07-08',1)

获取时间差

function getNumberOfDays(date1, date2) {
  //date1:开始日期,date2结束日期
  var a1 = Date.parse(new Date(date1));
  var a2 = Date.parse(new Date(date2));
  return parseInt((a2 - a1) / (1000 * 60 * 60 * 24)); //核心:时间戳相减,然后除以天数
}

获取当前时间

function getCurrentDate() {
  var date = new Date();
  var Y = date.getFullYear();
  var M =
    date.getMonth() + 1 < 10
      ? "0" + (date.getMonth() + 1)
      : date.getMonth() + 1;
  //获取当日日期
  var D = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();

  return Y + "-" + M + "-" + D;
}

格式化时间

function dateFormat(fmt, date) {
  let ret;
  let delongDate = new Date(date);
  const opt = {
    "Y+": delongDate.getFullYear().toString(), // 年
    "m+": (delongDate.getMonth() + 1).toString(), // 月
    "d+": delongDate.getDate().toString(), // 日
    "h+": delongDate.getHours().toString(), // 时
    "f+": delongDate.getMinutes().toString(), // 分
    "s+": delongDate.getSeconds().toString(), // 秒
  };
  for (let k in opt) {
    ret = new RegExp("(" + k + ")").exec(fmt);
    if (ret) {
      fmt = fmt.replace(
        ret[1],
        ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0")
      );
    }
  }
  return fmt;
}

输入两个日期,得到这两天之间的日期

function getAllDay(day1, day2) {
  var getDate = function(str) {
    var tempDate = new Date();
    var list = str.split("-");
    tempDate.setFullYear(list[0]);
    tempDate.setMonth(list[1] - 1);
    tempDate.setDate(list[2]);
    return tempDate;
  };
  var date1 = getDate(day1);
  var date2 = getDate(day2);
  if (date1 > date2) {
    var tempDate = date1;
    date1 = date2;
    date2 = tempDate;
  }
  date1.setDate(date1.getDate() + 1);
  var dateArr = [];
  var i = 0;
  while (
    !(
      date1.getFullYear() == date2.getFullYear() &&
      date1.getMonth() == date2.getMonth() &&
      date1.getDate() == date2.getDate()
    )
  ) {
    var dayStr = date1.getDate().toString();
    if (dayStr.length == 1) {
      dayStr = "0" + dayStr;
    }
    dateArr[i] =
      date1.getFullYear() + "-" + (date1.getMonth() + 1) + "-" + dayStr;
    i++;

    date1.setDate(date1.getDate() + 1);
  }
  dateArr.splice(0, 0, day1);
  dateArr.push(day2);
  return dateArr;
}