@diyaner/ding
Version:
dingiyan常用ts/js工具
190 lines (189 loc) • 6.2 kB
TypeScript
/**
* [DateFormat 日期时间格式化类]
* @param {string | Date} datestr [类实例化时接收一个日期时间字符串或者日期对象]
* 如果该字符串无法被new Date解析,则以当前系统时间创建。
*/
export declare class DateFormat {
/**
*保存日期对象
*
* @memberof DateFormat
*/
datetime: Date;
/**
*格式化日期的字符串。内置的。
*
* @memberof DateFormat
*/
private defaultFormatStr;
/**
*格式化后保存的日期字符串
*
* @memberof DateFormat
*/
formatdate: string;
/**
* 构造函数,初始化类为一个对象实例时调用的
* Creates an instance of DateFormat.
* - 如果传入参数不能被new Date将内置默认使用当前时间new Date,请自行先判断是否是一个可new Date的参数值。
* @param {string | number | Date} datestr 接收一个日期字符串/时间戳或日期对象。
* @memberof DateFormat
*
*/
constructor(datestr?: string | number | Date);
year: number;
month: number;
date: number;
week: number;
hour: number;
minutes: number;
seconds: number;
milliseconds: number;
timestamp: number;
/**
*提取函数,提取日期对象上的年月日时间等数据
*
* @return {*}
* @memberof DateFormat
*/
extract(): this;
/** 获取时间戳 */
getTime(): number;
/** 增减日*/
addDate(num?: number): this;
/**
* 增减月
*
* @param {number} [num=1]
* @return {*}
* @memberof DateFormat
*/
addMonth(num?: number): this;
/** 增减年*/
addYear(num?: number): this;
/** 增减时*/
addHour(num?: number): this;
/** 增减分钟 */
addMinutes(num?: number): this;
/** 增减秒 */
addSeconds(num?: number): this;
/** 增减毫秒 */
addMilliseconds(num?: number): this;
/** 增减周 */
addWeek(num?: number): this;
/** add 方法 根据opt参数决定更改哪一个时间,是具体的add方法调用的。*/
add(opt: "y" | "m" | "d" | "h" | "min" | "s" | "ms" | "week" | "Y" | "M" | "D" | "H" | "MIN" | "S" | "MS" | "WEEK", num?: number): this;
/** 替换默认的格式化字符串方法*/
setDefaultFormatStr(str: string): void;
/**
*日期格式化为一个字符串
*
* @param {String} fmt_ 格式化字符串 yyyy-MM-dd hh:mm:ss
* @return {string} 日期字符串 2021-12-12 10:12:12
*/
format(fmt_?: string): string;
/** 格式化一个年月日,固定格式 "yyyy-MM-dd"*/
formatYmd(): string;
setTimeTo(hour: number, mins: number, sec: number): this;
/** 将时间设置为 00:00:00 */
setTimeToDayStart(): this;
/** 将时间设置为 23:59:59 */
setTimeToDayEnd(): this;
setDateTo(date: number): this;
/**
* 设置一个日期到当月第一天
* - 不关注时间部分
*/
setDateToMonthFirst(): this;
/**
* 设置一个时间到当月最后一天
* - 不关注时间部分
*/
setDateToMonthEnd(): this;
/**
* 设置一个时间到当年第一天
* - 不关注时间部分
*/
setToYearFirstDay(): this;
/**
* 设置一个时间到当年最后一天
* - 不关注时间部分
*/
setToYearEndDay(): this;
/**
* 计算一个时间分钟的当日分钟数
* 如 2022-01-01 08:00:00 -> 08:00 -> 8 * 60 + 0 -> 480
* @return {number} 返回分钟数
*/
calcMinsNumber(): number;
/**
* 计算日期所在的月份的第一天和最后一天
*
* @param {boolean} [isReturnFormatStr=true] 是否返回格式化后的字符串日期 默认是
* @return {*} 形如:["2022-10-01","2022-10-31"] 或者[new Date('2022-10-01 00:00:00'),new Date('2022-10-31 23:59:59')]
* @memberof DateFormat
*/
currentMonth<T extends boolean>(isReturnFormatStr: T): T extends true ? [string, string] : [Date, Date];
/** DateFormat的方法都是单实例操作,返回实例本身,若遇到需要新实例时,可以调用clone方法返回新实例 */
clone(): DateFormat;
/** 下一个星期几
* - 周日到周六为0-6
*/
nextWeekDay(weekDay?: number): this;
/**
* 下一个周一
*/
nextMonday(): this;
/** 下一个月的第一天,时间为00:00:00
*/
nextMonthFirstDay(): this;
/**
* 静态方法,日期格式化为一个字符串
*/
static formatDate(date: Date, fmtString?: string): string;
/**
* 计算两个日期的差值
*
* @static
* @param {(number | Date)} date1 开始日期 较小的日期
* @param {(number | Date)} date2 结束日期 较大的日期
* @return {{days: number;hours: number;minutes: number; seconds: number}}
* @memberof DateFormat
*/
static calcTwoDateDiffer(date1: number | Date, date2: number | Date): {
days: number;
hours: number;
minutes: number;
seconds: number;
};
static findWeekDate: typeof findWeekDate;
static monthSplitWeek: typeof monthSplitWeek;
/** 静态属性,实例化自身DateFormat类并返回 */
static init(date?: string | number | Date): DateFormat;
}
export default DateFormat;
/**
*寻找一个日期所处的一周的周几的Date
*
* @export
* @param {Date} day 一个日期
* @param {0} week 需要找这周的周几0-6 周日-周六
*/
export declare function findWeekDate(date: Date, week?: 0 | 1 | 2 | 3 | 4 | 5 | 6): Date;
/**
*把一个月按周分割时间段。以周一为起始
*
* @export
* @param {Date} date 传入一个日期
* @param {boolean} [isFirstDayStart=true] 以每月1日所在周作为起始周,若false则以每月第一个周一为始
*/
export declare function monthSplitWeek(date: Date, isFirstDayStart?: boolean): [string, string][];
/**
* 计算一天的某个分钟时间的分钟数
* - 如 12:10 = 12 * 60 + 10 = 730
*
* @export
* @param {string} minStr 时间分钟 形如 09:10
* @return {number} 分钟数
*/
export declare function calcMinsNumber(minStr: string): number;