js 封装格式化时间函数

一、前言

 这篇文章主要讲如何封装时间格式化,主要对三种不同的时间进行格式化,通过封装思想以及根据不同类型进行自动格式化。文中的代码可以直接放到你项目的公共函数中,毕竟很多地方需要用到的,直接看代码吧,还是很简单的。😊

二、具体代码

// 时间格式化
/*
  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----

四、后话

  可能有些小伙伴会说现在有很多现成库,干嘛还要写,其实也可以直接引入第三方库,也可以当成自己练手,毕竟有些面试需要手写格式化时间的,至少我遇到过。如果有更好的写法请指出哈,一起学习一起进步,感谢您的阅读。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值