对的时间点 遇上对的人

jQuery 时间格式化、获取多少天后的日期、获取周几、正则表达式判断在和多时候我们在获取到数据之后需要格式化之后显示在页面上,下面给大家分享一些关系封装好的方法来处理时间。

1:时间格式化

// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, 
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
// 例子: 
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18 
Date.prototype.Format = function (fmt) { //author: meizz 
    var o = {
        "M+": this.getMonth() + 1, //月份 
        "d+": this.getDate(), //日 
        "h+": this.getHours(), //小时 
        "m+": this.getMinutes(), //分 
        "s+": this.getSeconds(), //秒 
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
        "S": this.getMilliseconds() //毫秒 
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
};

调用方式new Date().Format("yyyy-MM-dd")  或者你的时间 new Date("2020-03-15 15:20:38").Format("yyyy-MM-dd")。需要注意一点的是苹果浏览器是/的时间格式,所以要特别处理一下。要把你的时间格式替换一下 

比如 new Date(("2020-03-15 15:20:38").replace(/-/g,"/"))替换的效果如下

2:获取周几 

//获取周几
function weekDay(obj){
	var weekDay = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
	var weekDay1 = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
    var myDate = new Date(Date.parse(obj.replace(/-/g, "/")));
    var week = weekDay1[myDate.getDay()];
    return week;
}

调用方式 :weekDay("2020-04-01")有的就要问了,如果我的是一个时间戳啦,那就先需要你把时间戳转换为时间格式啦。下面就会有对时间戳转换为时间的方法

3:时间戳转换为时间格式化

/** 
 * 时间戳格式化函数 
 * @param  {string} format    格式 
 * @param  {int}    timestamp 要格式化的时间 默认为当前时间 
 * @return {string}           格式化的时间字符串 
 */
function date(format, timestamp){  
    var a, jsdate=((timestamp) ? new Date(timestamp*1000) : new Date()); 
    var pad = function(n, c){ 
        if((n = n + "").length < c){ 
            return new Array(++c - n.length).join("0") + n; 
        } else { 
            return n; 
        } 
    }; 
    var txt_weekdays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; 
    var txt_ordin = {1:"st", 2:"nd", 3:"rd", 21:"st", 22:"nd", 23:"rd", 31:"st"}; 
    var txt_months = ["", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];  
    var f = { 
        // Day 
        d: function(){return pad(f.j(), 2)}, 
        D: function(){return f.l().substr(0,3)}, 
        j: function(){return jsdate.getDate()}, 
        l: function(){return txt_weekdays[f.w()]}, 
        N: function(){return f.w() + 1}, 
        S: function(){return txt_ordin[f.j()] ? txt_ordin[f.j()] : 'th'}, 
        w: function(){return jsdate.getDay()}, 
        z: function(){return (jsdate - new Date(jsdate.getFullYear() + "/1/1")) / 864e5 >> 0}, 
        
        // Week 
        W: function(){ 
            var a = f.z(), b = 364 + f.L() - a; 
            var nd2, nd = (new Date(jsdate.getFullYear() + "/1/1").getDay() || 7) - 1; 
            if(b <= 2 && ((jsdate.getDay() || 7) - 1) <= 2 - b){ 
                return 1; 
            } else{ 
                if(a <= 2 && nd >= 4 && a >= (6 - nd)){ 
                    nd2 = new Date(jsdate.getFullYear() - 1 + "/12/31"); 
                    return date("W", Math.round(nd2.getTime()/1000)); 
                } else{ 
                    return (1 + (nd <= 3 ? ((a + nd) / 7) : (a - (7 - nd)) / 7) >> 0); 
                } 
            } 
        }, 
        
        // Month 
        F: function(){return txt_months[f.n()]}, 
        m: function(){return pad(f.n(), 2)}, 
        M: function(){return f.F().substr(0,3)}, 
        n: function(){return jsdate.getMonth() + 1}, 
        t: function(){ 
            var n; 
            if( (n = jsdate.getMonth() + 1) == 2 ){ 
                return 28 + f.L(); 
            } else{ 
                if( n & 1 && n < 8 || !(n & 1) && n > 7 ){ 
                    return 31; 
                } else{ 
                    return 30; 
                } 
            } 
        }, 
        
        // Year 
        L: function(){var y = f.Y();return (!(y & 3) && (y % 1e2 || !(y % 4e2))) ? 1 : 0}, 
        //o not supported yet 
        Y: function(){return jsdate.getFullYear()}, 
        y: function(){return (jsdate.getFullYear() + "").slice(2)}, 
        
        // Time 
        a: function(){return jsdate.getHours() > 11 ? "pm" : "am"}, 
        A: function(){return f.a().toUpperCase()}, 
        B: function(){ 
            // peter paul koch: 
            var off = (jsdate.getTimezoneOffset() + 60)*60; 
            var theSeconds = (jsdate.getHours() * 3600) + (jsdate.getMinutes() * 60) + jsdate.getSeconds() + off; 
            var beat = Math.floor(theSeconds/86.4); 
            if (beat > 1000) beat -= 1000; 
            if (beat < 0) beat += 1000; 
            if ((String(beat)).length == 1) beat = "00"+beat; 
            if ((String(beat)).length == 2) beat = "0"+beat; 
            return beat; 
        }, 
        g: function(){return jsdate.getHours() % 12 || 12}, 
        G: function(){return jsdate.getHours()}, 
        h: function(){return pad(f.g(), 2)}, 
        H: function(){return pad(jsdate.getHours(), 2)}, 
        i: function(){return pad(jsdate.getMinutes(), 2)}, 
        s: function(){return pad(jsdate.getSeconds(), 2)}, 
        //u not supported yet 
        
        // Timezone 
        //e not supported yet 
        //I not supported yet 
        O: function(){ 
            var t = pad(Math.abs(jsdate.getTimezoneOffset()/60*100), 4); 
            if (jsdate.getTimezoneOffset() > 0) t = "-" + t; else t = "+" + t; 
            return t; 
        }, 
        P: function(){var O = f.O();return (O.substr(0, 3) + ":" + O.substr(3, 2))}, 
        //T not supported yet 
        //Z not supported yet 
        
        // Full Date/Time 
        c: function(){return f.Y() + "-" + f.m() + "-" + f.d() + "T" + f.h() + ":" + f.i() + ":" + f.s() + f.P()}, 
        //r not supported yet 
        U: function(){return Math.round(jsdate.getTime()/1000)} 
    }; 
        
    return format.replace(/[\\]?([a-zA-Z])/g, function(t, s){ 
        if( t!=s ){ 
            // escaped 
            ret = s; 
        } else if( f[s] ){ 
            // a date function exists 
            ret = f[s](); 
        } else{ 
            // nothing special 
            ret = s; 
        } 
        return ret; 
    }); 
}
调用方式:console.log(date('Y-m-d','1585628730'));//很方便的将时间戳转换成了2020-03-31
date('Y-m-d H:i:s','1585628730');//得到的结果是2020-03-31 12:25:30

4:获取前几天、后几天 当天日期

//获得日期
function getDay(day){  
       var today = new Date();  
       var targetday_milliseconds=today.getTime() + 1000*60*60*24*day;          
       today.setTime(targetday_milliseconds); //注意,这行是关键代码    
       var tYear = today.getFullYear();  
       var tMonth = chek(today.getMonth()+1);  
       var tDate = chek(today.getDate()); 
       var tHour = chek(today.getHours()); 
       var tMinute = chek(today.getMinutes()); 
       var tSeconds = chek(today.getSeconds()); 
       return tYear+"-"+tMonth+"-"+tDate;  //这个地方自定义返回格式
} 


//获得日期2
function GetDateStr(AddDayCount) { 
   var dd = new Date();
   dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期
   var y = dd.getFullYear(); 
   var M = (dd.getMonth()+1)<10?"0"+(dd.getMonth()+1):(dd.getMonth()+1);//获取当前月份的日期,不足10补0
   var d = dd.getDate()<10?"0"+dd.getDate():dd.getDate();//获取当前几号,不足10补0
   var h = dd.getHours()<10?"0"+dd.getHours():dd.getHours();//获取当前小时
   var m = dd.getMinutes()<10?"0"+dd.getMinutes():dd.getMinutes();//获取当前分钟
   var s = dd.getSeconds()<10?"0"+dd.getSeconds():dd.getSeconds();//获取当前秒
   return y+"-"+M+"-"+d; 
}


function chek(obj){
	if(obj<10){
		return "0"+obj;
	}else{
		return obj;
	}	
}

调用方法

1:console.log(getDay(-2)) 获得当前日期前2天   获得日期2方式一样

2:console.log(getDay(0))获取当前日期

3:console.log(getDay(2));获得当前日期后2天

5:倒计时 

//倒计时计算
function GetRTime(sever_time){
    var str = "距离方案公布时间还剩:";
    var t =sever_time;
    var d=0;
    var h=0;
    var m=0;
    var s=0;
    if(t>=0){
      d=Math.floor(t/1000/60/60/24);
      h=Math.floor(t/1000/60/60%24);
      m=Math.floor(t/1000/60%60);
      s=Math.floor(t/1000%60);
    }
 
   if(sever_time<=0){
	  $("#localtime").html("今日方案已经公开");
	  return;
   }else{
	    str = str + h+"小时"+ m+"分钟"+ s+"秒";
	   $("#localtime").html(str); 
   }
   window.setTimeout("GetRTime()", 1000);
  sever_time=sever_time-1000;
}

6:常用的正则表达式

//去除字符前后空格
function trim(s){
    return s.replace(/(^\s*)|(\s*$)/g, "");
}
//校验空格
function clearKG(str){ 
    var reg=/^\s*$/;
    return reg.test(str);    
}
function cleartHC(str){//校验回车换行
	var reg = /[\r\n]/g;
	return reg.test(str);
}
//判断手机号
function isMobile(input) {
	var mobile_reg = /^1[34578]\d{9}$/;
	return mobile_reg.test(input);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章