获取指定时间段的日期

let getDayAll = (timeArr) => {
  let starDay = timeArr[0]
  let endDay = timeArr[1]
  var arr = [];
  var dates = [];

  // 设置两个日期UTC时间
  var db = new Date(starDay);
  var de = new Date(endDay);

  // 获取两个日期GTM时间
  var s = db.getTime() - 24 * 60 * 60 * 1000;
  var d = de.getTime() - 24 * 60 * 60 * 1000;

  // 获取到两个日期之间的每一天的毫秒数
  for (var i = s; i <= d;) {
    i = i + 24 * 60 * 60 * 1000;
    arr.push(parseInt(i))
  }

  // 获取每一天的时间  YY-MM-DD
  for (var j in arr) {
    var time = new Date(arr[j]);
    var year = time.getFullYear(time);
    var month = (time.getMonth() + 1) >= 10 ? (time.getMonth() + 1) : (time.getMonth() + 1);
    var day = time.getDate() >= 10 ? time.getDate() : time.getDate();
    var YYMMDD = year + '-' + month + '-' + day;



var obj = { year, month, day, } dates.push(obj) } // 如果选的是同一天 if (dates.length == 1) { // 某一天凌晨的毫秒数 let second = new Date(new Date(endDay).toLocaleDateString()).getTime() // 特定时间的毫秒数 dates[0].begin = new Date(starDay).getTime() - second dates[0].end = new Date(endDay).getTime() - second } else { for (let i = 0, len = dates.length; i < len; i++) { if (i == 0) { let second = new Date(new Date(starDay).toLocaleDateString()).getTime() dates[i].begin = new Date(starDay).getTime() - second dates[i].end = 86400 - 1 } else if (i == len - 1) { let second = new Date(new Date(endDay).toLocaleDateString()).getTime() dates[len - 1].begin = 0 dates[len - 1].end = new Date(endDay).getTime() - second } else { dates[i].begin = 0 dates[i].end = 86400 - 1 } } } return dates } onMounted(() => { let timeArr = ['2022-2-27 00:00:30', '2022-3-29 00:00:31'] let allDays = getDayAll(timeArr) console.log('所有的时间组成的数组:', allDays) })

 

posted on 2022-05-25 22:13  稳住别慌  阅读(103)  评论(0编辑  收藏  举报