猎取自定义的当前时候花样

本日分享一个本身前段时候封装的猎取自定义的当前时候花样的函数,有兴致的能够参考参考,如果有什么不足,迎接指导。

//猎取时候
        /*
        * t为一个时候花样字符串,如'Y-M-D-W H:Mi:S'=>'2017-06-03-礼拜六 22:06:50'
        * 能够定义任何分隔符和关键字的花样,关键字为Y:年,M:月,D:日,W:礼拜几,H:时,Mi:分,S:秒,Ms:毫秒
        * 也可单个猎取定义,如'///H://S&&'=>'///22://50&&';
        * */
        function getDate(t){
            var reg=/[^a-zA-Z0-9]/ig;//婚配分隔符
            var tArr=t.split(reg);//经由过程分隔符分割为数组
            for(var a=0;a<tArr.length;a++){
                if(!tArr[a]){
                    tArr.splice(a,1);
                    a--;
                }
            }
            var date=new Date();
            var time=[];//寄存对应时候
            var timeRep={
                'Y':function(){
                    return date.getFullYear();
                },
                'M':function(){
                    return zerofill(date.getMonth()+1);
                },
                'D':function(){
                    return zerofill(date.getDate());
                },
                'W':function(){
                    var w=date.getDay();
                    var week='';
                    switch(w){
                        case 0: week='礼拜日';
                            break;
                        case 1: week='礼拜一';
                            break;
                        case 2: week='礼拜二';
                            break;
                        case 3: week='礼拜三';
                            break;
                        case 4: week='礼拜四';
                            break;
                        case 5: week='礼拜五';
                            break;
                        case 6: week='礼拜六';
                            break;
                    }
                    return week;
                },
                'H':function(){
                    return zerofill(date.getHours());
                },
                'Mi':function(){
                    return zerofill(date.getMinutes());
                },
                'S':function(){
                    return zerofill(date.getSeconds());
                },
                'Ms':function(){
                    return date.getMilliseconds();
                }
            };
            for(var i=0;i<tArr.length;i++){
                for(var j in timeRep) {
                    if (tArr[i] ==j) {
                        time.push(timeRep[j]());//push对应时候
                        break;
                    }
                }
            }
            var str='';//中转字符串
            var returnStr=t;//要返回的时候字符串
            for(var k=0;k<tArr.length;k++){
                str=returnStr.replace(tArr[k],time[k]);
                returnStr=str;
            }
            return returnStr;

            //补零函数
            function zerofill(time){
                return time<10?'0'+time:time;
            }
        }

解释写的应当还算清晰,所以我就不多说了。

运用

多个关键字

console.log( getDate( 'Y-M-D-W H:Mi:S' ) ) // 2017-07-04-礼拜二 12:06:50

多个关键字(恣意字符)

console.log( getDate( '//Y-M-D/W-H:Mi:S' ) ) // //2017-06-03/礼拜二-12:06:50

单个关键字

console.log( getDate( 'Y' ) ) // 2017

单个关键字(恣意字符)

console.log( getDate( '---Y*///' ) ) // ---2017*///

如果有什么不足,迎接指导。

    原文作者:陈帅
    原文地址: https://segmentfault.com/a/1190000010039976
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞