好用的js时间插件 js Date

相信每个前端人员都会遇到 js的奇葩Date函数确实感觉不好用所以自己写了一个 希望对大家有点帮助

主要逻辑是传入指定格式的字符串(如果不传就默认当前时间),然后传入你需要的指定格式,来获取你需要的字符串,听起来好繁琐 上代码
注 makeDate()返回的日期格式对象还包含了一些日期参数,如果有更多需要的小伙伴还可以自行更改需要的格式哦


<html>
<head>
<meta charset="UTF-8">
<title>日期插件测试title>
head>
<body onload="load()">
<script type="text/javascript">
    function load(){
        console.log(makeDate().format());
        //2017-8-25 15:9:13
        console.log(makeDate().format(["年","月","日 ","时","分","秒","毫秒"]));
        //2017年8月25日 15时9分13秒985毫秒
        console.log(makeDate().format(["年","月","日"]));
        //2017年8月25日    
            console.log(makeDate().format([null,null,null,"时","分","秒","毫秒"]));
console.log(makeDate().format([,,,"时","分","秒"]));
//15时9分13秒

        console.log(makeDate().format(["-","-"," ",":"," "]));
        //2017-8-25 15:9
        console.log(makeDate("2017-08-25 08:6:08").format());
        //2017-8-25 8:6:8
        console.log(makeDate("2017-08-25 23:6:08").format());
        //2017-8-25 23:6:8
    };
/**获取当前时间的字符串*/
function makeDate(dateStr){
    //dateStr需要遵循 2017-08-25 08:08:08
    var d=new Date();
    if(dateStr){
    var dateStrArr=dateStr.split(/[-|:| ]/);
        d.setFullYear(dateStrArr[0],dateStrArr[1]*1-1,dateStrArr[2]);
        d.setHours(dateStrArr[3],dateStrArr[4],dateStrArr[5])
    }


    var dateObj={};
    dateObj.yyyy=d.getFullYear();
    dateObj.MM=d.getMonth()+1;
    dateObj.dd=d.getDate();

    dateObj.HH=d.getHours();
    dateObj.mm=d.getMinutes();
    dateObj.ss=d.getSeconds();
    dateObj.ms=d.getMilliseconds();
    dateObj.time=d.getTime();
    dateObj.date=d;

     /**根据间隔字符串来获取对应的日期格式
        例如:splitArr=["年","月","日 ","时","分","秒","毫秒"]
           或["年","月","日"]或[null,null,null,"时","分","秒","毫秒"]或["-","-"," ",":"," "]
    */
    dateObj.format=function(splitArr){
        var dateArr=[this.yyyy,this.MM,this.dd,this.HH,this.mm,this.ss,this.ms]
        var dateStr;
        for(var i in splitArr){
            if(splitArr[i]&&dateArr[i]){
                if(!dateStr){dateStr="";};
                dateStr+=dateArr[i]+splitArr[i];
            }
        }
        if(dateStr){
            return dateStr.trim();
        }else{
            return this.yyyy+"-"+this.MM+"-"+this.dd+" "+this.HH+":"+this.mm+":"+this.ss;
        }
    }
    return dateObj;
}

script>
body>
html>

你可能感兴趣的:(web)