1. 程式人生 > >JS 判斷字串是否為時間格式&開始時間不能大於截止時間

JS 判斷字串是否為時間格式&開始時間不能大於截止時間

function isdate(str) {
	var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
	var r = str.match(reg); 
	if(r==null)
		return false;
	var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
	return (d.getFullYear()==r[1] && (d.getMonth()+1)==r[3] && 
			d.getDate()==r[4] && d.getHours() == r[5] && d.getMinutes()==r[6] && d.getSeconds()==r[7]);
}
function checkDate(strDate1,strDate2){
	var t1 = new Date(strDate1);   
	var t2 = new Date(strDate2);  
		    
	if(Date.parse(t1) - Date.parse(t2) > 0){   
		return false; 
	}else{
		return true;
	}
}

補充:checkDate 方法在 IE8 上會出現問題,t1 和 t2 會變為 NAN值,故一直返回 true。應改為如下程式碼:

function checkDate(strDate1,strDate2){
	
    var t1 = new Date(Date.parse(strDate1.replace(/-/g,"/"))).getTime();  
	var t2 = new Date(Date.parse(strDate2.replace(/-/g,"/"))).getTime();  
    if(t1 - t2 > 0){     
        return false;   
    }else{  
        return true;  
    }
}

注意:

new Date("Mon Sep 18 09:21:58 CST 2017") 

輸出為:

Mon Sep 18 2017 23:21:58 GMT+0800 (中國標準時間)