fengxiang
2018-03-19 b7aa850069d53ca1cc2aea791e7401216f5b795c
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
import {Injectable} from '@angular/core';
 
import * as moment from 'moment';
import { TimePeriod } from '@business/entity/data';
import { TimeUnits } from '@business/enum/types.enum';
 
 
type baseUnitOfMoment = moment.unitOfTime.Base;
@Injectable()
export class DateService {
  date_format(date: string, format: string) {
    return moment(date).format(format);
  }
 
  today(format: string) {
    return moment().format(format);
  }
  /**
   *  获取时间区间,粒度数值
   */   
   countTimeRange(timePeriod: TimePeriod): number {
      let timeUnit: baseUnitOfMoment = 'day';
      timeUnit = <baseUnitOfMoment>timePeriod.timeUnits.toLowerCase();
      const start = moment(timePeriod.startTime);
      const end = moment(timePeriod.endTime);
      return end.diff(start, timeUnit) + 1;
   }
   makeTimeList(timePeriod: TimePeriod): string [] {
    const start = moment(timePeriod.startTime);
    const end = moment(timePeriod.endTime);
    const timeList: string[] = [];
    let timeUnit: baseUnitOfMoment = 'day';
    let formatStyle = '';
    switch (timePeriod.timeUnits) {
      case TimeUnits.YEAR: 
      formatStyle = 'YYYY';
      timeUnit = 'year'; break;
      case TimeUnits.MONTH: 
      formatStyle = 'YYYY-MM';
      timeUnit = 'month'; break;
      case TimeUnits.DAY: 
      formatStyle = 'YYYY-MM-DD';
      timeUnit = 'day'; break;
      case TimeUnits.HOUR: 
      formatStyle = 'YYYY-MM-DD HH';
      timeUnit = 'hour'; break;
      case TimeUnits.MINUTE: 
      formatStyle = 'YYYY-MM-DD HH:mm';
      timeUnit = 'minute'; break;
    }
    while (start.valueOf() < end.valueOf()) {
     const outTime = start.format(formatStyle);
     timeList.push(outTime);
     start.add(1, timeUnit);
    }
    return timeList;
   }
}