1. 程式人生 > >javascript計算兩個時間差

javascript計算兩個時間差

date() body 間隔 script ges lac 可見 轉換 小寫

javascript計算兩個時間差

  其實,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>

javascript計算兩個時間差