new date()标准时间转yyyy-mm-dd hh:mm 24小时制

萝らか妹 提交于 2020-01-22 18:09:46

在这里插入图片描述

// 扩充js的内置对象Date方法
Object.assign(Date.prototype, {
    switch(time) {
        let date = {  
             "yy": this.getFullYear(),
             // 这里月份的key采用大写,为了区别分钟的key
          "MM": this.getMonth() + 1,  
          "dd": this.getDate(),  
          "hh": this.getHours(),  
          "mm": this.getMinutes(),  
          "ss": this.getSeconds()
        };  
        //输出年 y+:匹配1个到多个y,i:忽略大小写
        if (/(y+)/i.test(time)) {  
            time = time.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));  
        }  
        //输出月、日、时、分、秒
        Object.keys(date).forEach(function(i){
            //  "(" + i + ")"的结果是字符串"(i+)",
               // 只有写成"(" + i + ")"形式,才能在正则表达式中捕获子匹配,进而才能用到RegExp.$1的值
            if (new RegExp("(" + i + ")").test(time)) { 
                  // 判断,如果时间为一位数,则在前面加'0' 
                  // ps:这里有一个小知识点:number类型+string类型 = string类型
                  if(RegExp.$1.length == 2){
                      date[i] < 10 ? date[i] = '0' + date[i]: date[i];
                  }
                  //替换初始化函数时候传入yyyy-mm-dd hh:mm:ss(这里可以打印出time、RegExp.$1、date[k])
                  time = time.replace(RegExp.$1, date[i]); 
            }  
        })
        return time;  
    }
})

let newDate = new Date();
		// newDate.switch()传参的大小写要和方法内定义的key匹配
	    document.write(newDate.switch('yyyy-MM-dd hh:mm:ss'));  
	    //结果为:2017-03-24 20:24:36
	    document.write(newDate.switch('yyyy-MM-dd'));  
	    //结果为:2017-03-24

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!