javascript计算两个时间差

Posted yangAL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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计算两个时间差的主要内容,如果未能解决你的问题,请参考以下文章

javascript常用代码片段

JavaScript单行代码,也就是代码片段

JavaScript笔试题(js高级代码片段)

常用Javascript代码片段集锦

覆盖javascript以消除闪烁

如何将此 JavaScript 代码片段翻译成 Parenscript?