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