有时候我们需要知道两个日期之间差了多少天,多少小时,甚至多少分钟多少秒。下面我们用JavaScript实现一个函数,用于计算两个日期的时间差,先来看看代码:
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> |
使用的方法很简单,比如计算天数可以这样:
1 | GetDateDiff( "2010-02-26 16:00:00" , "2011-07-02 21:48:40" , "day" ); |
计算秒数则可以这样:
1 | GetDateDiff( "2010-02-26 16:00:00" , "2011-07-02 21:48:40" , "second" ); |
实例程序的运行结果如下:
1 | 两个时间差已有491天了。 |