JavaScript計算兩個時間點之間的時間差

antzone發表於2018-07-04

獲得兩個時間點的時間差是一個很重要的操作,因為有時候需要根據這個時間差去執行一定的操作。

下面通過程式碼例項介紹一下如何實現此功能。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
function GetDateDiff(startTime,endTime,diffType){
  startTime=startTime.replace(/\-/g,"/");
  endTime=endTime.replace(/\-/g,"/");
  diffType=diffType.toLowerCase();
  var sTime = new Date(startTime);    //開始時間
  var eTime = new Date(endTime);  //結束時間</font>
  //作為除數的數字
  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));
}
console.log(GetDateDiff("2012-10-11","2013-10-18","day"));
console.log(GetDateDiff("2012-10-11 12:25:20","2013-10-18 1:25:20","second"));

可以根據引數的不同來給出不同的差值,比如可以是天、秒或者小時等。

一.程式碼註釋:

(1).function GetDateDiff(startTime,endTime,diffType){},獲取時間差函式,第一個引數是起始時間點,第二個是結束時間點,第三個是時間型別。

(2).startTime=startTime.replace(/\-/g,"/"),將時間中的"-"替換為"/",之所以這樣是因為Date()建構函式只有2012/3/10這種形式實現瀏覽器全相容。

(3).endTime=endTime.replace(/\-/g,"/"),同上。

(4).diffType=diffType.toLowerCase(),轉換為小寫。

(5). var divNum=1,宣告一個變數,這個用來作為根據不同的時間差型別,來賦予不同的值。

二.相關閱讀:

(1).replace()參閱正規表示式 replace()一章節。 

(2).toLowerCase()參閱JavaScript toLowerCase()一章節。 

(3).Date()建構函式參閱JavaScript Date()建構函式引數介紹一章節。 

(4).switch語句參閱JavaScript switch 語句一章節。 

相關文章