獲取自定義的當前時間格式

今天分享一個本身前段時間封裝的獲取自定義的當前時間格式的函數,有興趣的能夠參考參考,若是有什麼不足,歡迎指點。數組

//獲取時間
        /*
        * 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*///

若是有什麼不足,歡迎指點。code

相關文章
相關標籤/搜索