时间戳转换为其他时间格式的封装

最近做vue相关的项目,用到了后台返回的时间,因为后台返回的时间都是时间戳格式,加上项目中多次用到了时间的不同格式的显示,为此自行封装了关于时间戳转换时间格式的方法,可能有待优化,但对于新手都是可以理解的,不足之处还望各位大佬指正。
言归正传,封装方法考虑的就是参数的问题,根据参数执行方法,直接上代码,不懂的可以看注释。

<script>
    /*
    *@param {时间戳} timestamp
    *@param {转换的格式} typedef
    *@param {连接符} concat
    */
    //时间格式的封装  如将2019-5-6 11:8:34变成2019/5/6 11:08:34或者变成2019-5等等你想要的时间格式 
    function formatTime(timestamp, typedef = "YY|MM|DD", concat = ".") {
    
    
        let time
        if (typeof timestamp === "string") {
    
    
            time = Number(timestamp)
        } else {
    
    
            time = timestamp
        }
        if (time) {
    
    
            let data = new Date(time)
            let Year = data.getFullYear()    //获取年
            let Month = data.getMonth() + 1  //获取月
            let Day = data.getDate()         //获取日
            let Hour = data.getHours()       //获取时
            let Min = data.getMinutes()      //获取分
            let Secon = data.getSeconds()    //获取秒
            //不大于10补零操作
            Month = add0(Month)
            Day = add0(Day)
            Hour = add0(Hour)
            Min = add0(Min)
            Secon = add0(Secon)

            let newTime = ''
            if (typedef === "YY|MM|DD HH:MM:SS") {
    
    
                newTime = '' + Year + concat + Month + concat + Day + ' ' + Hour + ':' + Min + ':' + Secon
            } else if (typedef === "YY|MM|DD HH:MM") {
    
    
                newTime = '' + Year + concat + Month + concat + Day + '' + Hour + ':' + Min
            } else if (typedef === "YY|MM|DD") {
    
    
                newTime = '' + Year + concat + Month + concat + Day
            } else if (typedef === "YY|MM") {
    
    
                newTime = '' + Year + concat + Month
            } else if (typedef === "MM|DD") {
    
    
                newTime = '' + Month + concat + Day
            } else if (typedef === "YY") {
    
    
                newTime = '' + Year
            } else if (typedef === "MM") {
    
    
                newTime = '' + Month
            } else if (typedef === "DD") {
    
    
                newTime = '' + Day
            }
            return newTime
        }
    }
    //补零
    function add0(time) {
    
    
        return time > 10 ? time : '0' + time
    }
    //检验代码
    console.log(formatTime("1564804053345", "YY|MM|DD HH:MM:SS", "-"))   //2019-08-03 11:47:33
    console.log(formatTime("1564804053345", "YY|MM", "/"))              //2019/08
    console.log(formatTime(1564804053345, "YY|MM", "-"))               //2019-08
</script>

使用的时候只需参照参数格式调用方法即可(调用之前确保你的传入的时间格式是时间戳,可以是字符串可以是数字(毫秒))然后就可以转成你想要的时间格式啦!在vue项目中的话直接在main.js中,然后导入到全局中,在任何地方都可以使用啦。

完结

好了,如果你觉得有用的话麻烦评论个1,有不懂的地方我们可以一起交流学习。

猜你喜欢

转载自blog.csdn.net/Smell_rookie/article/details/98334455
今日推荐