好用的js时间插件 js Date

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

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

<!DOCTYPE html>
<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>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值