javascript计算两个日期时间差

来源:互联网 发布:西班牙语教材 知乎 编辑:程序博客网 时间:2024/04/30 17:59

有时候我们需要知道两个日期之间差了多少天,多少小时,甚至多少分钟多少秒。下面我们用JavaScript实现一个函数,用于计算两个日期的时间差,先来看看代码:

view source
print?
01<script type="text/javascript">
02        /*
03        * 获得时间差,时间格式为 年-月-日 小时:分钟:秒 或者 年/月/日 小时:分钟:秒
04        * 其中,年月日为全格式,例如 : 2010-10-12 01:00:00
05        * 返回精度为:秒,分,小时,天
06        */
07 
08        function GetDateDiff(startTime, endTime, diffType) {
09            //将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式
10            startTime = startTime.replace(/\-/g, "/");
11            endTime = endTime.replace(/\-/g, "/");
12 
13            //将计算间隔类性字符转换为小写
14            diffType = diffType.toLowerCase();
15            var sTime = new Date(startTime);      //开始时间
16            var eTime = new Date(endTime);  //结束时间
17            //作为除数的数字
18            var divNum = 1;
19            switch (diffType) {
20                case "second":
21                    divNum = 1000;
22                    break;
23                case "minute":
24                    divNum = 1000 * 60;
25                    break;
26                case "hour":
27                    divNum = 1000 * 3600;
28                    break;
29                case "day":
30                    divNum = 1000 * 3600 * 24;
31                    break;
32                default:
33                    break;
34            }
35            return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(divNum));
36        }
37         
38        var result = GetDateDiff("2010-02-26 16:00:00""2011-07-02 21:48:40""day");
39        document.write("两个时间差已有" + result + "天了。");
40        //alert(result);
41</script>

使用的方法很简单,比如计算天数可以这样:

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

计算秒数则可以这样:

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

实例程序的运行结果如下:

1两个时间差已有491天了。