JS對日期、時間校驗;相容IE new Date()

autumnqfeng發表於2019-03-19

1. IE瀏覽器new Date();的坑

var thisDate=new Date("yyyy-MM-dd HH:mm:ss");//此方式IE不支援
var thisDate=new Date("yyyy/MM/dd HH:mm:ss");//此語法支援IE
複製程式碼

2. 比較兩個日期的大小。例:2019-3-19

	//比較兩個日期大小
	function dateCompare(startDate,endDate){
	   var aStart=startDate.split('-'); //轉成成陣列,分別為年,月,日,下同
	   var aEnd=endDate.split('-');
	   var startDateTemp = aStart[0]+"/" + aStart[1]+ "/" + aStart[2];
	   var endDateTemp = aEnd[0] + "/" + aEnd[1] + "/" + aEnd[2];
	   if (startDateTemp > endDateTemp) 
	    return true;
	   else
	    return false;
	}
複製程式碼

3. 計算兩個日期之間的天數

	function dateDiff(date1, date2){     
		var type1 = typeof date1, type2 = typeof date2;     
		if(type1 == 'string')     
			date1 = stringToTime(date1);     
		else if(date1.getTime)     
			date1 = date1.getTime();     
		if(type2 == 'string')     
			date2 = stringToTime(date2);     
		else if(date2.getTime)     
			date2 = date2.getTime(); 
		return (date2 - date1) / 1000 / 60 / 60 / 24;//除1000是毫秒,不加是秒 
	} 
	//字串轉成Time(dateDiff)所需方法 
	function stringToTime(string){     
		var f = string.split(' ', 2);     
		var d = (f[0] ? f[0] : '').split('-', 3);     
		var t = (f[1] ? f[1] : '').split(':', 3);     
		return (new Date(     
		parseInt(d[0], 10) || null,     
		(parseInt(d[1], 10) || 1)-1,     
		parseInt(d[2], 10) || null,     
		parseInt(t[0], 10) || null,    
		parseInt(t[1], 10) || null,     
		parseInt(t[2], 10) || null)).getTime(); 
	}
複製程式碼

4. 顯示當前系統日期(跑起來的時間)

function showtime() {
	// 獲取當前時間物件
	var day = new Date();
	var yeas = day.getFullYear();// 獲取年份
	var month = day.getMonth();// 獲取月份,值在0--11之間
	var days = day.getDate();// 獲取每個月的第幾天
	var hours = day.getHours();// 獲取當前的小時
	var minutes = day.getMinutes();// 獲取當前的分鐘
	var seconds = day.getSeconds();// 獲取當前的時間秒
	var week = day.getDay();// 獲取當前的星期值在0--6之間
	// alert(week);
	var weeks = null;
	if (week == 1) {
		weeks = "星期一";
	} else if (week == 2) {
		weeks = "星期二";
	} else if (week == 3) {
		weeks = "星期三";
	} else if (week == 4) {
		weeks = "星期四";
	} else if (week == 5) {
		weeks = "星期五";
	} else if (week == 6) {
		weeks = "星期六";
	} else if (week == 0) {// 0代表的是星期天
		weeks = "星期天";
	}
	// 將日期顯示在前臺
	$("#clock").text(yeas + "年" + (month + 1) + "月" + days + "日" + hours + ":" + minutes+ ":" + seconds + "\t\t\t" + weeks);
}
複製程式碼
$(function() {
	showtime();
	// 呼叫時間函式,每一秒鐘呼叫一次
	setInterval("showtime()", 1000);
});
複製程式碼

5:格式化當前系統時間

Date.prototype.format = function(format){ 
	var o = { 
    	"M+" : this.getMonth()+1, //month 
    	"d+" : this.getDate(), //day 
    	"h+" : this.getHours(), //hour 
    	"m+" : this.getMinutes(), //minute 
    	"s+" : this.getSeconds(), //second 
    	"q+" : Math.floor((this.getMonth()+3)/3), //quarter 
    	"S" : this.getMilliseconds() //millisecond 
	} 
	if(/(y+)/.test(format)) { 
	    format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 
	} 
	for(var k in o) { 
    	if(new RegExp("("+ k +")").test(format)) { 
    	    format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length)); 
    	} 
    } 
    return format; 
} 

//返回當前年月日格式為:2016-04-08而不是2016-4-8
new Date().format.("yyyy-MM-dd");
複製程式碼

6. 計算兩個日期相差分鐘數

    // 兩個日期之間的分鐘數
    function calcDateMinute(startDate,endDate){
        var newDate = new Date(endDate).getTime() - new Date(startDate).getTime();
        return Math.ceil(newDate / 1000 / 60);
    }
複製程式碼

相關文章