JS - 日期格式化封装

const REGEX_FORMAT = new RegExp("([^\]]+)|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS", "gi")
const formatDate = (value, format = 'YYYY-MM-DD') => {
    if (!value) return ''
    // ios 和 mac 系统中,带横杆的字符串日期是格式不了的,这里做一下判断处理
    if (typeof value === "string" && new Date(value).toString() === "Invalid Date") {
        value = value.replace(/-/g, "/");
    }
    const date = new Date(value)
    const year = date.getFullYear()
    const month = date.getMonth()
    const days = date.getDate()
    const day = date.getDay()
    const hours = date.getHours()
    const minutes = date.getMinutes()
    const seconds = date.getSeconds()
    const milliseconds = date.getMilliseconds()
    const matches = {
        YY: String(year).slice(-2),
        yy: String(year).slice(-2),
        YYYY: year,
        yyyy: year,
        M: month + 1,
        MM: `${month + 1}`.padStart(2, '0'),
        D: String(days),
        DD: `${days}`.padStart(2, '0'),
        H: String(hours),
        HH: `${hours}`.padStart(2, '0'),
        h: `${hours % 12 || 12}`.padStart(1, '0'),
        hh: `${hours % 12 || 12}`.padStart(2, '0'),
        m: String(minutes),
        mm: `${minutes}`.padStart(2, '0'),
        s: String(seconds),
        ss: `${seconds}`.padStart(2, '0'),
        SSS: `${milliseconds}`.padStart(3, '0'),
        d: day,
    }
    return format.replace(REGEX_FORMAT, (match, $1) => $1 || matches[match])
}


module.exports = { formatDate } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值