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

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

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

01
<script
type=
"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-dd
hh:mm:ss"
);
71
72
var
result
=GetDateDiff(
"2010-02-26
16:00:00"
,
testStr,
"day"
);
73
document.write(
"简明现代魔法
www.nowamagic.net建站已有"
+
result+
"天了。"
);
74
//alert(result);
75
</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"
);
使用的方法很简单,比如计算天数可以这样:

计算秒数则可以这样:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: