guoshipeng
2023-08-03 f5c993750e570e2b7ce6c4060e2875f4e7eebb7b
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
import moment from 'moment';
 
export function fixedZero(val: number) {
  return val * 1 < 10 ? `0${val}` : val;
}
 
export function getTimeDistance(type: string): moment.Moment[] {
  const now = new Date();
  const oneDay = 1000 * 60 * 60 * 24;
 
  if (type === 'today') {
    now.setHours(0);
    now.setMinutes(0);
    now.setSeconds(0);
    return [moment(now), moment(now.getTime() + (oneDay - 1000))];
  }
 
  if (type === 'week') {
    let day = now.getDay();
    now.setHours(0);
    now.setMinutes(0);
    now.setSeconds(0);
 
    if (day === 0) {
      day = 6;
    } else {
      day -= 1;
    }
 
    const beginTime = now.getTime() - day * oneDay;
 
    return [moment(beginTime), moment(beginTime + (7 * oneDay - 1000))];
  }
 
  if (type === 'month') {
    const year = now.getFullYear();
    const month = now.getMonth();
    const nextDate = moment(now).add(1, 'months');
    const nextYear = nextDate.year();
    const nextMonth = nextDate.month();
 
    return [
      moment(`${year}-${fixedZero(month + 1)}-01 00:00:00`),
      moment(moment(`${nextYear}-${fixedZero(nextMonth + 1)}-01 00:00:00`).valueOf() - 1000),
    ];
  }
 
  const year1 = now.getFullYear();
  return [moment(`${year1}-01-01 00:00:00`), moment(`${year1}-12-31 23:59:59`)];
}