import moment, { Moment } from "moment";

/**
 * 获取number类型时间戳
 * @returns 
 */
export function getTimeValue(): number {
    return moment().valueOf()
}

type Time = string | Moment | Date
/**
 * 获取两个时间范围内的所有时间
 * @param val1 时间1
 * @param val2 时间2
 * @param type 时间格式化类型
 * @returns string[]类型
 */
export function getRangeTime(val1: Time, val2: Time, type = 'YYYYMMDD'): string[] {
    const fn = (val: Time) => moment(val).format(type)
    const result: string[] = []
    // 处理开始时间和结束时间
    let startTime = fn(val1)
    let endTime = fn(val2)
    const isSame = () => moment(startTime).isSame(moment(endTime))
    if (isSame()) {
        return [startTime, startTime]
    } else {
        if (moment(startTime).isAfter(moment(endTime))) {
            [startTime, endTime] = [endTime, startTime]
        }
        while (!isSame()) {
            result.push(startTime)
            startTime = moment(startTime).add(1, 'd').format(type)
        }
        result.push(endTime)
        return result
    }
}