熊浩宇
发布于 2024-01-05 / 0 阅读 / 0 评论 / 0 点赞

时间格式化(正则替换)

时间格式化(正则替换)

/**
 * 时间格式化
 * @param { Date } time 
 * @param { String } fmt  yyyy-MM-dd HH: mm: ss
 * @returns 
 */
const dateFormat = (time: string | number | Date, fmt: string): string => {
    if (!time) return ''
    const date = new Date(time)
    const o = {
        'M+': date.getMonth() + 1,
        'd+': date.getDate(),
        'H+': date.getHours(),
        'm+': date.getMinutes(),
        's+': date.getSeconds(),
        'q+': Math.floor((date.getMonth() + 3) / 3),
        S: date.getMilliseconds()
    }
    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
        for (const k in o) {
            if (new RegExp('(' + k + ')').test(fmt)) {
                fmt = fmt.replace(
                    RegExp.$1,
                    RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)
                )
            }
        }
    }
    return fmt
}

评论