code
//日期戳转日期字符串:yyyy-MM-dd HH:mm:ss
export const formatDate = (v: string | number | Date) => {
    if (v == null) {
        return '';
    } else {
        const dateObj = new Date(v); // 创建Date对象
        const year = dateObj.getFullYear(); // 获取年份
        const month = ("0" + (dateObj.getMonth() + 1)).slice(-2); // 获取月份,并补零
        const day = ("0" + dateObj.getDate()).slice(-2); // 获取日期,并补零
        const hour = ("0" + dateObj.getHours()).slice(-2); // 获取小时,并补零
        const minute = ("0" + dateObj.getMinutes()).slice(-2); // 获取分钟,并补零
        const second = ("0" + dateObj.getSeconds()).slice(-2); // 获取秒,并补零
        return `${year}-${month}-${day} ${hour}:${minute}:${second}`; // 返回转换后的日期格式
    }
}
//日期戳转日期字符串:yyyy-MM-dd
export const formatDateShort = (v: string | number | Date) => {
    let fullDateStr = formatDate(v);
    if (fullDateStr != '') {
        fullDateStr = fullDateStr.substring(0, 11);
    }
    return fullDateStr;
}

// 格式化日期 yyyy年-MM月-dd日
export const formatDateShortCN = (val: string | number | Date) => {
    const dateObj = new Date(val)
    const year = dateObj.getFullYear(); // 获取年份
    const month = ("0" + (dateObj.getMonth() + 1)).slice(-2); // 获取月份,并补零
    const day = ("0" + dateObj.getDate()).slice(-2); // 获取日期,并补零
    return year + '年-' + month + '月-' + day + '';
}

//获取时间戳
export function getNowTimeSpan() {
    return new Date().getTime();//.toString()
}

//获取时间戳
export function getDateTimeSpan(date: Date) {
    return date.getTime();//.toString()
}

//修改日期,增加或减少(负数)指定日期段,判断闰2月
export const dateAdd = (date: string | number | Date, strInterval: string, num: number) => {
    //日期
    var dt = new Date(date);
    //传入日期转日期戳
    var dtstp = dt.getTime();
    switch (strInterval) {
        case 'sec': return new Date(dtstp + (1000 * num));//
        case 'min': return new Date(dtstp + (60000 * num));//
        case 'hour': return new Date(dtstp + (3600000 * num));//小时
        case 'day': return new Date(dtstp + (86400000 * num));//
        case 'weekend': return new Date(dtstp + ((86400000 * 7) * num));////季度(三个月)
        case 'quarter':
            let monthQ = (dt.getMonth()) + (num * 3);
            let dQ = dt.getDate();
            //如果是2月,判断28天还是29天。
            let monthCal = (monthQ + 1) % 12;
            if (monthCal == 0) {
                //等于0,说明是12月。
                monthCal = 12;
            }
            if (monthCal == 2 && dQ > 28) {
                let testDate = new Date(dt.getFullYear(), monthQ, 29);
                if (testDate.getDate() == 29) {
                    dQ = 29;
                } else {
                    dQ = 28;
                }
            }
            return new Date(dt.getFullYear(), monthQ, dQ, dt.getHours(), dt.getMinutes(), dt.getSeconds());
        //
        case 'month':
            let month = (dt.getMonth()) + num;
            let d = dt.getDate();
            //如果是2月,判断28天还是29天。
            let monthCal2 = (month + 1) % 12;
            if (monthCal2 == 0) {
                //等于0,说明是12月。
                monthCal2 = 12;
            }
            if (monthCal2 == 2 && d > 28) {
                let testDate2 = new Date(dt.getFullYear(), month, 29);
                if (testDate2.getDate() == 29) {
                    d = 29;
                } else {
                    d = 28;
                }
            }
            return new Date(dt.getFullYear(), month, d, dt.getHours(), dt.getMinutes(), dt.getSeconds());
        //
        case 'year': return new Date((dt.getFullYear() + num), dt.getMonth(), dt.getDate(), dt.getHours(), dt.getMinutes(), dt.getSeconds());
    }
    return dt;
}

 

posted on 2024-11-21 11:43  邢帅杰  阅读(5)  评论(0编辑  收藏  举报