开发需求
在前端中我们通常使用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