获取自定义的当前时间格式

今天分享一个自己前段时间封装的获取自定义的当前时间格式的函数,有兴趣的可以参考参考,如果有什么不足,欢迎指点。

//获取时间
        /*
        * 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*///

如果有什么不足,欢迎指点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值