JavaScript如何計算兩個日期間的時間差

有時候我們需要知道兩個日期之間差了多少天
服務器君一共花費了158.738 ms進行了5次數據庫查詢,努力地為您提供了這個頁面。
試試閱讀模式?希望聽取您的建議

有時候我們需要知道兩個日期之間差了多少天,多少小時,甚至多少分鐘多少秒。下面我們用JavaScript實現一個函數,用于計算兩個日期的時間差,先來看看代碼:

<script type="text/javascript">

/**
* 時間對象的格式化;
*/
Date.prototype.format = function(format){
 /*
  * eg:format="YYYY-MM-dd hh:mm:ss";
  */
	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 = 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;
}


/* 
* 獲得時間差,時間格式為 年-月-日 小時:分鐘:秒 或者 年/月/日 小時:分鐘:秒 
* 其中,年月日為全格式,例如 : 2010-10-12 01:00:00 
* 返回精度為:秒,分,小時,天
*/

function GetDateDiff(startTime, endTime, diffType) {
    //將xxxx-xx-xx的時間格式,轉換為 xxxx/xx/xx的格式 
    startTime = startTime.replace(/\-/g, "/");
    endTime = endTime.replace(/\-/g, "/");

    //將計算間隔類性字符轉換為小寫
    diffType = diffType.toLowerCase();
    var sTime = new Date(startTime);      //開始時間
    var eTime = new Date(endTime);  //結束時間
    //作為除數的數字
    var divNum = 1;
    switch (diffType) {
        case "second":
            divNum = 1000;
            break;
        case "minute":
            divNum = 1000 * 60;
            break;
        case "hour":
            divNum = 1000 * 3600;
            break;
        case "day":
            divNum = 1000 * 3600 * 24;
            break;
        default:
            break;
    }
    return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(divNum));
}

var testDate = new Date();
var testStr = testDate.format("yyyy-MM-dd hh:mm:ss");

var result = GetDateDiff("2010-02-26 16:00:00", testStr, "day");
document.write("簡明現代魔法 www.824886.live 建站已有" + result + "天了。");
//alert(result);
</script>

使用的方法很簡單,比如計算天數可以這樣:

GetDateDiff("2010-02-26 16:00:00", "2011-07-02 21:48:40", "day");

計算秒數則可以這樣:

GetDateDiff("2010-02-26 16:00:00", "2011-07-02 21:48:40", "second");

實例程序的運行結果如下:

本文地址:http://www.824886.live/librarys/veda/detail/1616,歡迎訪問原出處。

不打個分嗎?

轉載隨意,但請帶上本文地址:

http://www.824886.live/librarys/veda/detail/1616

如果你認為這篇文章值得更多人閱讀,歡迎使用下面的分享功能。
小提示:您可以按快捷鍵 Ctrl + D,或點此 加入收藏。

大家都在看

閱讀一百本計算機著作吧,少年

很多人覺得自己技術進步很慢,學習效率低,我覺得一個重要原因是看的書少了。多少是多呢?起碼得看3、4、5、6米吧。給個具體的數量,那就100本書吧。很多人知識結構不好而且不系統,因為在特定領域有一個足夠量的知識量+足夠良好的知識結構,系統化以后就足以應對大量未曾遇到過的問題。

奉勸自學者:構建特定領域的知識結構體系的路徑中再也沒有比學習該專業的專業課程更好的了。如果我的知識結構體系足以囊括面試官的大部分甚至吞并他的知識結構體系的話,讀到他言語中的一個詞我們就已經知道他要表達什么,我們可以讓他坐“上位”畢竟他是面試官,但是在知識結構體系以及心理上我們就居高臨下。

所以,閱讀一百本計算機著作吧,少年!

《敏捷軟件開發(原則模式與實踐)》 馬丁 (作者), 鄧輝 (譯者)

《敏捷軟件開發:原則模式與實踐》由享譽全球的軟件開發專家和軟件工程大師Robert C.Martin將向您展示如何解決軟件開發人員、項目經理及軟件項目領導們所面臨的最棘手的問題。這本綜合性、實用性的敏捷開發和極限編程方面的指南,是由敏捷開發的創始人之一所撰寫的。1.講述在預算和實踐要求下,軟件開發人員和項目經理如何使用敏捷開發完成項目;2.使用真實案例講解如何用極限編程來設計、測試、重構和結對編程;3.包含了極具價值的可多次使用的C++和JAVA源代碼;4.重點講述了如何使用UML和設計模式解決面向客戶系統的問題。

更多計算機寶庫...

云南快乐十分走势一定牛 浙江20选5复式 贵州快3二不同推荐号 2018王者捕鱼怎样下载 西宁特钢董事长级别 深圳风采开奖走势图 德甲分析 哈灵浙江麻将下载app 贵州十一选五遗漏 三分彩免费计划 皇家88平台登录注册