UNPKG

@rdkmaster/jigsaw-labs

Version:

Jigsaw, the next generation component set for RDK

179 lines (178 loc) 5.38 kB
import { Time, Moment, WeekTime } from "./time.types"; /** * 时间粒度值 */ export declare enum TimeGr { second = 0, minute = 1, hour = 2, date = 3, week = 4, month = 5, } /** * 周起始日期 */ export declare enum TimeWeekStart { sun = 0, mon = 1, tue = 2, wed = 3, thu = 4, fri = 5, sat = 6, } /** * 关于时间宏: * * 它通过一些数字,以及语义化的单词作为单位来表示一个时刻,时间宏是一个普通的字符串。 * 例如`"now"`这个宏表示当前时刻,`JigsawTime`将会将其换算为其被初始化的时刻。 * * 此外,时间宏还支持加减运算。例如`"now-1d"`的意思是昨天的这个时候,相应的,明天则是`"now+1d"`,上个月是`"now-1M"`等。 * 时间宏目前可以支持的时刻是`"now"`,支持的所有单位在这个枚举类型中全部列出了。(注意大小写) * * 时间宏的换算是由Jigsaw自动完成的,如果你需要获得一个时间宏的值,请调用`TimeService.getFormatDate()`方法。 * * `TimeService`提供了许多有用的时间换算、格式化工具,当你有需要对时间进行运算时,可以参考它的api说。 */ export declare enum TimeUnit { s = 0, m = 1, h = 2, d = 3, w = 4, M = 5, y = 6, } /** * 常用时间格式,`TimeService.format`可以支持任何格式,我们做这个枚举只是他们太常用了,使用这个枚举+IDE提示,你可以少敲很多次键盘。 */ export declare enum TimeFormatters { yyyy_mm_dd_hh_mm_ss = 0, yyyy_mm_dd_hh_mm = 1, yyyy_mm_dd_hh = 2, yyyy_mm_dd = 3, yyyy_mm = 4, } /** * 提供了日期运算、格式化、转换等一系列常用的方法,当你需要对时间做任何操作时,它都可以帮到你。 */ export declare class TimeService { /** * 将一个时刻转成符合改粒度的值,例如 * * ``` * TimeService.convertValue("now", TimeGr.date); // -> 2018/3/23 00:00:00 * ``` * * `"now"`的时分秒被切去。 * * @param {WeekTime} value 待转换的时刻,支持时间宏,请参考这里`TimeUnit`的说明。 * @param {TimeGr} gr 目标粒度 * @return {string} 符合粒度格式的时刻 */ static convertValue(value: WeekTime, gr: TimeGr): string; private static _handleWeekValue(newValue); private static _timeFormatterConvert(formatter); private static _timeFormatMap; /** * 时间单位枚举值转对应字符串 * * @param {TimeUnit} unit 时间单位枚举值 * @return {string} 返回对应的字符串 */ static timeUnitConvert(unit: TimeUnit): string; private static _timeUnitMap; private static _initMoment(); /** * 仅仅是为了初始化moment对象 * @type {any} */ private static init; /** * 判断给定的时刻值是否是时间宏字符串 * * @param {Time} time 给定的时刻值 * @returns {boolean} 如果给定的值非字符串,则必然返回false。 */ static isMacro(time: Time): boolean; /** * 特殊时间宏的转换 * @param timeMacro * @returns {any} */ private static _convertBasicMacro(timeMacro); /** * 时间加减法 * * @param {Time} date 时间 * @param {string|number} num 数量,为负数即为减法 * @param {TimeUnit} unit 单位 */ static addDate(date: Time, num: string | number, unit: TimeUnit): Moment; /** * 根据粒度获取格式化字符串 * * @param {TimeGr} gr * @returns {string} */ static getFormatter(gr: TimeGr): string; /** * 时间格式化 * * @param {Time} date * @param {string | TimeFormatters} formatter */ static format(date: Time, formatter: string | TimeFormatters): string; /** * 根据粒度格式化时间 * * @param {Time} date * @param {TimeGr} gr */ static formatWithGr(date: Time, gr: TimeGr): string; /** * 设置默认周开始,设置之后会影响之后的所有计算结果 * * @param {TimeWeekStart} weekStart */ static setWeekStart(weekStart?: TimeWeekStart): void; /** * 获取给定时间在当年的周数 * * @param {Time} date * @return {number} */ static getWeekOfYear(date: Time): number; /** * 获取给定时间的年数值 * * @param {Time} date * @return {number} */ static getYear(date: Time): number; /** * 获取给定时间的月数值 * * @param {Time} date * @return {number} */ static getMonth(date: Time): number; /** * 获取给定时间的天数值 * * @param {Time} date * @return {number} */ static getDay(date: Time): number; static getDateFromYearAndWeek(year: number, week: number): Date; static getDate(str: Time, gr: TimeGr): Moment; /** * 根据字符串获取真实时间 * * @param {Time} time * @param {TimeGr} gr * @returns {Time} */ static getFormatDate(time: Time, gr?: TimeGr): Time; }