一、前言
这篇文章主要讲如何封装时间格式化,主要对三种不同的时间进行格式化,通过封装思想以及根据不同类型进行自动格式化。文中的代码可以直接放到你项目的公共函数中,毕竟很多地方需要用到的,直接看代码吧,还是很简单的。😊
二、具体代码
// 时间格式化
/*
params:
type: 传递的类型 三种(UTC、DateNow(纯时间戳)、newDate(格林威治时间))
举例:
UTC: 2022-10-08T10:54:56.955+08:00
newDate: Sat Oct 08 2022 17:41:00 GMT+0800 (中国标准时间)
Date.now: 1665221993103
time: 需要被格式化的时间
这种一般是工具函数,直接导出timeFormat就可以,formatTimIng不需要导出
*/
// export const timeFormat = (type, time) => { // 导出时的写法
const timeFormat = (type, time) => {
if (type == "UTC" || type == "DateNow") {
let tmpTime = new Date(time);
return formatTimIng(tmpTime);
} else {
return formatTimIng(time);
}
};
// 格式化中
const formatTimIng = (time) => {
let year = time.getFullYear();
let month = time.getMonth() + 1 < 10? "0" + (time.getMonth() + 1) : time.getMonth() + 1;
let day = time.getDate() + 1 < 10 ? "0" + (time.getDate() + 1) : time.getDate() + 1;
let hours = time.getHours() + 1 < 10? "0" + (time.getHours() + 1): time.getHours() + 1;
let minutes = time.getMinutes() + 1 < 10? "0" + (time.getMinutes() + 1): time.getMinutes() ;
let seconds = time.getSeconds() + 1 < 10? "0" + (time.getSeconds() + 1): time.getSeconds() ;
return (
year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds
);
};
三、如何使用
const utc_time = "2022-10-08T10:54:56.955+08:00";
console.log(timeFormat("UTC", utc_time), "utc_now----");
// 2022-10-09 11:55:57 utc_now----
const date_now = Date.now();
console.log(timeFormat("DateNow", date_now), "date_now----");
// 2022-10-09 18:31:55 date_now----
const new_date = new Date();
console.log(timeFormat("newDate", new_date), "new_date----");
// 2022-10-09 18:31:55 new_date----
四、后话
可能有些小伙伴会说现在有很多现成库,干嘛还要写,其实也可以直接引入第三方库,也可以当成自己练手,毕竟有些面试需要手写格式化时间的,至少我遇到过。如果有更好的写法请指出哈,一起学习一起进步,感谢您的阅读。