import moment from 'dayjs'

type Type = "day" | "week" | "month" | "year" | "years" | "y" | "months" | "M" | "weeks" | "w" | "days" | "d" | "hour" | "hours" | "h" | "minute"
type Format = 'YYYY-MM-DD' | 'YYYY-MM-DD HH' | 'YYYY-MM-DD HH:mm' | 'YYYY-MM-DD HH:mm:ss'
/**获取当前时间往前的时间 
 * @param type 处理的类型 小时？分？秒？年？月？日？
 * @param num 对应type计算的值假如type为day 设num为1就是获取往前一天的时间
 * @param date 默认为今天，可设置 其它时间支持字符串 2020-12-12 12:12:12
 * @param format 格式化类型 默认为YYYY-MM-DD
*/
export function useBeforeTime(num: number, type: Type, format?: Format, date?: Date | string): string {
    return moment(date || new Date()).subtract(num, type).format(format || 'YYYY-MM-DD')
}
/**
 * 格式化日期 
 * @param date 默认为今天，可设置 其它时间支持字符串 2020-12-12 12:12:12
 * @param format 格式化类型 默认为YYYY-MM-DD
 * */
export function useformatTime(format?: Format, date?: Date): string {
    return moment(date || new Date()).format(format || 'YYYY-MM-DD')
}
/**往后日期 
 * @param type 处理的类型 小时？分？秒？年？月？日？
 * @param num 对应type计算的值假如type为day 设num为1就是获取往后一天的时间
 * @param date 默认为今天，可设置 其它时间支持字符串 2020-12-12 12:12:12
 * @param format 格式化类型 默认为YYYY-MM-DD
*/
export function useAddTime(num: number, type: Type, format?: Format, date?: Date | string): string {
    return moment(date || new Date()).add(num, type).format(format || 'YYYY-MM-DD')
}