js前端格式化日期函数

12 篇文章 0 订阅

开发需求

在前端中我们通常使用new Date()函数获取到的日期时间是下面这种样子:Thu Jun 06 2024 17:29:11 GMT+0800 (中国标准时间),我们想要把它转换成常见的指定格式,比如

  • 年-月-日 时:分:秒
  • 年/月/日 时:分:秒
  • 年-月-日
  • 年/月/日

所以就封装了这个公共方法,类似于 python 中的时间处理函数 strftime()

方法使用

该方法传入两个参数, date (时间)和 format(指定格式化格式)

  • date:日期时间,Date()类型,默认是new Date()
  • format:指定格式化格式,默认是 YY-MM-DD,即就是年-月-日

返回:返回的结果就是根据当前时间格式化后 年月日 时分秒

formatDate(new Date(), 'YY/MM/DD h:m:s')   // 2024/6/6 17:20:41
formatDate(new Date(), 'YY-MM-DD h:m:s')   // 2024-6-6 17:20:55
formatDate(new Date(), 'YY/MM/DD')   // 2024/6/6
formatDate(new Date(), 'YY-MM-DD')   // 2024-6-6

代码实现

/**
 * @description 格式化日期函数
 * @param date Date
 * @param format 'YY-MM-DD'
 * @returns {string}
 */
export const formatDate = (date = new Date(), format = 'YY-MM-DD') => {

    let year = date.getFullYear();
    let month = date.getMonth() + 1;
    let today = date.getDate();
    let hour = date.getHours()
    let minute = date.getMinutes()
    let second = date.getSeconds()


    let currentTime;

    switch (format) {
        case "YY-MM-DD h:m:s":
            currentTime = `${year}-${month}-${today} ${hour}:${minute}:${second}`;
            break;
        case "YY/MM/DD h:m:s":
            currentTime = `${year}/${month}/${today} ${hour}:${minute}:${second}`
            break;
        case "YY/MM/DD":
            currentTime = `${year}/${month}/${today}`
            break;
        case "YY-MM-DD":
            currentTime = `${year}-${month}-${today}`
            break;
        default:
            currentTime = `${year}/${month}/${today}`
            break
    }

    return currentTime;

}

测试

formatDate(new Date(), 'YY/MM/DD h:m:s')   // 2024/6/6 17:20:41
formatDate(new Date(), 'YY-MM-DD h:m:s')   // 2024-6-6 17:20:55
formatDate(new Date(), 'YY/MM/DD')   // 2024/6/6
formatDate(new Date(), 'YY-MM-DD')   // 2024-6-6
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Joyce Lee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值