jiangping
2024-08-13 6765787baa5e0b771d71f865c4deb776367410c4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/**
 * 时间前后向前推算时间集合
 * @param {string:before|after} timebd:获取时间往后推,还是往前推,
 * @param {boole} haveCurrentDay:包不包含当天时间,
 * @param {number} Days:计算几天的时间,
 * @param {string:"2023-11-02"} timing:指定不指定当天的日期
 * @returns {array}数据集合
 */
export const nextDay = (timebd, haveCurrentDay, Days, timing) => {
 
    let today = new Date()   //获取今天的日期
    if (timing) {
      today = new Date(timing)
    }
    let date2 = new Date(today);  
    let dateArray = []
    timebd=timebd ? timebd:"after"
    haveCurrentDay=haveCurrentDay ? true:false
    Days=Days ? Days:7
    function TimestampToDate2(Timestamp) {
      let now = new Date(Timestamp),
      y = now.getFullYear(),
      m = now.getMonth() + 1,
      d = now.getDate();
      return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d);
    }
    let fori=haveCurrentDay ? 0:1;
    let fortotal=haveCurrentDay ? Days:Days+1;
    for(let i = fori; i < fortotal; i++){
      let everyDay=""
      if (timebd=="after") {//未来
        everyDay=date2.setDate(today.getDate() + i)
      }else{//过去
        everyDay=date2.setDate(today.getDate() - i)
      }
      dateArray.push(TimestampToDate2(everyDay))  //获取未来7天内的日期
    }
    if (timebd=="after") {//未来
      return dateArray
    }else{//过去
      return dateArray.reverse()
    }
  }
 
/**
 * 返回两个日期之前的天数
 */
export const getDateByDays = (startDate, endDdate) => {
    let d1 = Date.parse(new Date(startDate));
    let d2 = Date.parse(new Date(endDdate));
    // 时间戳相减 / 天数
    let day = parseInt((d2 - d1) / (1000 * 60 * 60 * 24));
    return day
}
 
// 获取多少天后的日期
export const getDaysAfterDate = (date, days) => {
    if (days === 0) {
        return '2099-01-01'
    }
    const now = new Date(date);
    now.setDate(now.getDate() + days);
    const year = now.getFullYear();
    const month = now.getMonth() + 1; // 月份是从0开始的
    const day = now.getDate();
    return `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`;
}