| | |
| | | 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); |
| | | } |
| | |
| | | * 获取时间区间,粒度数值 |
| | | */ |
| | | countTimeRange(timePeriod: TimePeriod): number { |
| | | let timeUnit = 0; |
| | | switch (timePeriod.timeUnits) { |
| | | case TimeUnits.YEAR: |
| | | timeUnit = 1000 * 60 * 60 * 24 * 30 * 12; break; |
| | | case TimeUnits.MONTH: |
| | | timeUnit = 1000 * 60 * 60 * 24 * 30; break; |
| | | case TimeUnits.DAY: |
| | | timeUnit = 1000 * 60 * 60 * 24; break; |
| | | case TimeUnits.HOUR: |
| | | timeUnit = 1000 * 60 * 60; break; |
| | | case TimeUnits.MINUTE: |
| | | timeUnit = 1000 * 60; break; |
| | | } |
| | | return Math.floor((timePeriod.endTime.getTime() - timePeriod.startTime.getTime()) / timeUnit); |
| | | 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: moment.DurationInputArg2 = 'day'; |
| | | let timeUnit: baseUnitOfMoment = 'day'; |
| | | let formatStyle = ''; |
| | | switch (timePeriod.timeUnits) { |
| | | case TimeUnits.YEAR: |
| | |
| | | formatStyle = 'YYYY-MM-DD HH:mm'; |
| | | timeUnit = 'minute'; break; |
| | | } |
| | | do { |
| | | while (start.valueOf() < end.valueOf()) { |
| | | const outTime = start.format(formatStyle); |
| | | timeList.push(outTime); |
| | | start.add(1, timeUnit); |
| | | }while (start.valueOf() < end.valueOf()); |
| | | } |
| | | return timeList; |
| | | } |
| | | } |