其實,javascript計算時間差的方式非常簡單,如果是默認的Date()類型,直接相減就是相差的毫秒數。
var d1 = new Date('2016/03/28 10:17:22');
var d2 = new Date('2016/03/28 11:17:22');
console.log(parseInt(d2 - d1));//兩個時間相差的毫秒數
console.log(parseInt(d2 - d1) / 1000);//兩個時間相差的秒數
console.log(parseInt(d2 - d1) / 1000 / 60);//兩個時間相差的分鍾數
console.log(parseInt(d2 - d1) / 1000 / 60);//兩個時間相差的小時數
輸出如下:

如果,拿到的不是日期類型,而是"2016-03-28 10:27:00"這種的字符串格式呢,那么就需要先將字符串轉換為日期類型。
var t1 = "2016-03-28 10:27:00"; var d1 = t1.replace(/\-/g, "/"); var date1 = new Date(d1);
以上得到的date1就是一個日期類型了。就可以計算了,只要再簡單封裝一下,就能夠組合出任意的事件類型轉換函數。
如:輸入字符串得到相差秒數:
<!doctype html>
<html>
<head>
<title>jQuery判斷元素是隱藏的還是可見的</title>
</head>
<body>
<script>
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 timeType =1;
switch (diffType) {
case"second":
timeType =1000;
break;
case"minute":
timeType =1000*60;
break;
case"hour":
timeType =1000*3600;
break;
case"day":
timeType =1000*3600*24;
break;
default:
break;
}
return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(timeType));
}
alert(GetDateDiff("2016-03-28 10:30:22","2016-03-28 10:38:22","minute"));
</script>
</body>
</html>

