@@ -7,7 +7,7 @@ declare const moment: any;
77 * 时间粒度值
88 */
99export enum TimeGr {
10- second , minute , hour , date , week , month
10+ second , minute , hour , date , week , month , time , time_hour_minute , time_minute_second
1111}
1212
1313/**
@@ -39,14 +39,14 @@ export enum TimeWeekDayStart {
3939 * `TimeService`提供了许多有用的时间换算、格式化工具,当你有需要对时间进行运算时,可以参考它的api说。
4040 */
4141export enum TimeUnit {
42- s , m , h , d , w , M , y
42+ s , m , h , d , w , M , y
4343}
4444
4545/**
4646 * 常用时间格式,`TimeService.format`可以支持任何格式,我们做这个枚举只是他们太常用了,使用这个枚举+IDE提示,你可以少敲很多次键盘。
4747 */
4848export enum TimeFormatters {
49- yyyy_mm_dd_hh_mm_ss , yyyy_mm_dd_hh_mm , yyyy_mm_dd_hh , yyyy_mm_dd , yyyy_mm
49+ yyyy_mm_dd_hh_mm_ss , yyyy_mm_dd_hh_mm , yyyy_mm_dd_hh , yyyy_mm_dd , yyyy_mm , hh_mm_ss , hh_mm , mm_ss
5050}
5151
5252/**
@@ -67,26 +67,37 @@ export class TimeService {
6767 * @param gr 目标粒度
6868 * @return 符合粒度格式的时刻
6969 */
70- public static convertValue ( value : WeekTime , gr :TimeGr ) : string {
70+ public static convertValue ( value : WeekTime , gr : TimeGr ) : string {
7171 value = TimeService . _handleWeekValue ( value ) ;
7272 value = TimeService . getFormatDate ( < Time > value , gr ) ;
7373 return < string > value ;
7474 }
7575
76- private static _handleWeekValue ( newValue :WeekTime ) : Time {
76+ private static _handleWeekValue ( newValue : WeekTime ) : Time {
7777 if ( newValue && typeof newValue [ "week" ] === 'number' ) {
7878 return TimeService . getDateFromYearAndWeek ( newValue [ "year" ] , newValue [ "week" ] )
7979 }
8080 return < Time > newValue ;
8181 }
8282
83- private static _timeFormatterConvert ( formatter : TimeFormatters ) :string {
84- switch ( formatter ) {
85- case TimeFormatters . yyyy_mm_dd_hh_mm_ss : return "YYYY-MM-DD HH:mm:ss" ;
86- case TimeFormatters . yyyy_mm_dd_hh_mm : return "YYYY-MM-DD HH:mm" ;
87- case TimeFormatters . yyyy_mm_dd_hh : return "YYYY-MM-DD HH" ;
88- case TimeFormatters . yyyy_mm_dd : return "YYYY-MM-DD" ;
89- case TimeFormatters . yyyy_mm : return "YYYY-MM" ;
83+ private static _timeFormatterConvert ( formatter : TimeFormatters ) : string {
84+ switch ( formatter ) {
85+ case TimeFormatters . yyyy_mm_dd_hh_mm_ss :
86+ return "YYYY-MM-DD HH:mm:ss" ;
87+ case TimeFormatters . yyyy_mm_dd_hh_mm :
88+ return "YYYY-MM-DD HH:mm" ;
89+ case TimeFormatters . yyyy_mm_dd_hh :
90+ return "YYYY-MM-DD HH" ;
91+ case TimeFormatters . yyyy_mm_dd :
92+ return "YYYY-MM-DD" ;
93+ case TimeFormatters . yyyy_mm :
94+ return "YYYY-MM" ;
95+ case TimeFormatters . hh_mm_ss :
96+ return "HH:mm:ss" ;
97+ case TimeFormatters . hh_mm :
98+ return "HH:mm" ;
99+ case TimeFormatters . mm_ss :
100+ return "mm:ss" ;
90101 }
91102 }
92103
@@ -96,7 +107,10 @@ export class TimeService {
96107 [ TimeGr . hour , TimeService . _timeFormatterConvert ( TimeFormatters . yyyy_mm_dd_hh ) ] ,
97108 [ TimeGr . date , TimeService . _timeFormatterConvert ( TimeFormatters . yyyy_mm_dd ) ] ,
98109 [ TimeGr . week , TimeService . _timeFormatterConvert ( TimeFormatters . yyyy_mm_dd ) ] ,
99- [ TimeGr . month , TimeService . _timeFormatterConvert ( TimeFormatters . yyyy_mm ) ]
110+ [ TimeGr . month , TimeService . _timeFormatterConvert ( TimeFormatters . yyyy_mm ) ] ,
111+ [ TimeGr . time , TimeService . _timeFormatterConvert ( TimeFormatters . hh_mm_ss ) ] ,
112+ [ TimeGr . time_hour_minute , TimeService . _timeFormatterConvert ( TimeFormatters . hh_mm ) ] ,
113+ [ TimeGr . time_minute_second , TimeService . _timeFormatterConvert ( TimeFormatters . mm_ss ) ] ,
100114 ] ) ;
101115
102116 /**
@@ -105,8 +119,8 @@ export class TimeService {
105119 * @param unit 时间单位枚举值
106120 * @return 返回对应的字符串
107121 */
108- public static timeUnitConvert ( unit : TimeUnit ) :string {
109- return TimeUnit [ unit ] ;
122+ public static timeUnitConvert ( unit : TimeUnit ) : string {
123+ return TimeUnit [ unit ] ;
110124 }
111125
112126 private static _timeUnitMap = new Map ( [
@@ -122,7 +136,7 @@ export class TimeService {
122136 private static _initMoment ( ) {
123137 try {
124138 moment . suppressDeprecationWarnings = 1 ;
125- } catch ( e ) {
139+ } catch ( e ) {
126140 }
127141 }
128142
@@ -139,7 +153,7 @@ export class TimeService {
139153 * @param time 给定的时刻值
140154 * @returns 如果给定的值非字符串,则必然返回false。
141155 */
142- public static isMacro ( time :Time ) : boolean {
156+ public static isMacro ( time : Time ) : boolean {
143157 if ( typeof time === 'string' ) {
144158 return ! ! time . match ( / ^ \s * ( n o w | t o d a y | y e s t o d a y | t o m o r r o w ) \s * ( [ + - ] \s * \d + \s * \w + ) ? \s * $ / i) ;
145159 }
@@ -151,7 +165,7 @@ export class TimeService {
151165 * @param timeMacro
152166 *
153167 */
154- private static _convertBasicMacro ( timeMacro :string ) : Date | string {
168+ private static _convertBasicMacro ( timeMacro : string ) : Date | string {
155169 let date ;
156170 switch ( timeMacro ) {
157171 case 'now' :
@@ -171,7 +185,7 @@ export class TimeService {
171185 * @param num 数量,为负数即为减法
172186 * @param unit 单位
173187 */
174- public static addDate ( date :Time , num :string | number , unit :TimeUnit ) : Moment {
188+ public static addDate ( date : Time , num : string | number , unit : TimeUnit ) : Moment {
175189 return moment ( date ) . add ( num , TimeService . _timeUnitMap . get ( unit ) ) ;
176190 }
177191
@@ -193,7 +207,7 @@ export class TimeService {
193207 * @param formatter
194208 */
195209 public static format ( date : Time , formatter : string | TimeFormatters ) : string {
196- if ( typeof formatter === "number" ) formatter = TimeService . _timeFormatterConvert ( formatter ) ;
210+ if ( typeof formatter === "number" ) formatter = TimeService . _timeFormatterConvert ( formatter ) ;
197211 return moment ( date ) . format ( formatter ) ;
198212 }
199213
@@ -203,7 +217,7 @@ export class TimeService {
203217 * @param date
204218 * @param gr
205219 */
206- public static formatWithGr ( date :Time , gr :TimeGr ) : string {
220+ public static formatWithGr ( date : Time , gr : TimeGr ) : string {
207221 let format = TimeService . getFormatter ( gr ) ;
208222 return moment ( date ) . format ( format ) ;
209223 }
@@ -233,7 +247,7 @@ export class TimeService {
233247 * @param date
234248 *
235249 */
236- public static getWeekYear ( date :Time ) : number {
250+ public static getWeekYear ( date : Time ) : number {
237251 return moment ( date ) . weekYear ( ) ;
238252 }
239253
@@ -243,7 +257,7 @@ export class TimeService {
243257 * @param date
244258 *
245259 */
246- public static getWeekOfYear ( date :Time ) : number {
260+ public static getWeekOfYear ( date : Time ) : number {
247261 return moment ( date ) . week ( ) ;
248262 }
249263
@@ -253,7 +267,7 @@ export class TimeService {
253267 * @param date
254268 *
255269 */
256- public static getYear ( date :Time ) : number {
270+ public static getYear ( date : Time ) : number {
257271 return moment ( date ) . year ( ) ;
258272 }
259273
@@ -263,7 +277,7 @@ export class TimeService {
263277 * @param date
264278 *
265279 */
266- public static getMonth ( date :Time ) : number {
280+ public static getMonth ( date : Time ) : number {
267281 return moment ( date ) . month ( ) + 1 ;
268282 }
269283
@@ -273,15 +287,15 @@ export class TimeService {
273287 * @param date
274288 *
275289 */
276- public static getDay ( date :Time ) : number {
290+ public static getDay ( date : Time ) : number {
277291 return moment ( date ) . date ( ) ;
278292 }
279293
280294 public static getDateFromYearAndWeek ( year : number , week : number ) : Date {
281295 return moment ( ) . weekYear ( year ) . week ( week )
282296 }
283297
284- public static getDate ( str :Time , gr : TimeGr ) : Moment {
298+ public static getDate ( str : Time , gr : TimeGr ) : Moment {
285299 return moment ( str , TimeService . getFormatter ( gr ) ) ;
286300 }
287301
0 commit comments