fengxiang
2018-03-19 b7aa850069d53ca1cc2aea791e7401216f5b795c
src/app/business/services/util/date.service.ts
@@ -1,10 +1,13 @@
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);
  }
@@ -12,4 +15,44 @@
  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;
   }
}