今天分享一个本身前段时间封装的获取自定义的当前时间格式的函数,有兴趣的能够参考参考,若是有什么不足,欢迎指点。数组
//获取时间 /* * 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