您的位置:首页 > Web前端 > JavaScript

JavaScript如何计算两个日期间的时间差

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

01
<scripttype=
"text/javascript"
>
02
03
/**
04
*时间对象的格式化;
05
*/
06
Date.prototype.format=
function
(format){
07
/*
08
*eg:format="YYYY-MM-ddhh:mm:ss";
09
*/
10
var
o={
11
"M+"
:
this
.getMonth()+1,
//month
12
"d+"
:
this
.getDate(),
//day
13
"h+"
:
this
.getHours(),
//hour
14
"m+"
:
this
.getMinutes(),
//minute
15
"s+"
:
this
.getSeconds(),
//second
16
"q+"
:Math.floor((
this
.getMonth()+3)/3),
//quarter
17
"S"
:
this
.getMilliseconds()
//millisecond
18
}
19
20
if
(/(y+)/.test(format)){
21
format=format.replace(RegExp.$1,(
this
.getFullYear()+
""
).substr(4-RegExp.$1.length));
22
}
23
24
for
(
var
k
in
o){
25
if
(
new
RegExp(
"("
+k+
")"
).test(format)){
26
format=format.replace(RegExp.$1,RegExp.$1.length==1?o[k]:(
"00"
+o[k]).substr((
""
+o[k]).length));
27
}
28
}
29
return
format;
30
}
31
32
33
/*
34
*获得时间差,时间格式为年-月-日小时:分钟:秒或者年/月/日小时:分钟:秒
35
*其中,年月日为全格式,例如:2010-10-1201:00:00
36
*返回精度为:秒,分,小时,天
37
*/
38
39
function
GetDateDiff(startTime,endTime,diffType){
40
//将xxxx-xx-xx的时间格式,转换为xxxx/xx/xx的格式
41
startTime=startTime.replace(/\-/g,
"/"
);
42
endTime=endTime.replace(/\-/g,
"/"
);
43
44
//将计算间隔类性字符转换为小写
45
diffType=diffType.toLowerCase();
46
var
sTime=
new
Date(startTime);
//开始时间
47
var
eTime=
new
Date(endTime);
//结束时间
48
//作为除数的数字
49
var
divNum=1;
50
switch
(diffType){
51
case
"second"
:
52
divNum=1000;
53
break
;
54
case
"minute"
:
55
divNum=1000*60;
56
break
;
57
case
"hour"
:
58
divNum=1000*3600;
59
break
;
60
case
"day"
:
61
divNum=1000*3600*24;
62
break
;
63
default
:
64
break
;
65
}
66
return
parseInt((eTime.getTime()-sTime.getTime())/parseInt(divNum));
67
}
68
69
var
testDate=
new
Date();
70
var
testStr=testDate.format(
"yyyy-MM-ddhh:mm:ss"
);
71
72
var
result=GetDateDiff(
"2010-02-2616:00:00"
,testStr,
"day"
);
73
document.write(
"简明现代魔法www.nowamagic.net建站已有"
+result+
"天了。"
);
74
//alert(result);
75
</script>
使用的方法很简单,比如计算天数可以这样:

1
GetDateDiff(
"2010-02-2616:00:00"
,
"2011-07-0221:48:40"
,
"day"
);
计算秒数则可以这样:

1
GetDateDiff(
"2010-02-2616:00:00"
,
"2011-07-0221:48:40"
,
"second"
);
实例程序的运行结果如下:

简明现代魔法www.nowamagic.net建站已有1695天了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: