第一个框为str_start 第二个为str_end;
我是这样写的:
var start = new Date(str_start.substring(0,4),str_start.substring(5,7)-1,str_start.substring(8,10),
str_start.substring(11,13),str_start.substring(14,16)); var end=new Date(str_end.substring(0,4),str_end.substring(5,7)-1,
str_end.substring(8,10),str_start.substring(11,13),str_start.substring(14,16)); var totalHours=(end-start)/(86400000);
可这除出来的结果好像是天,不是小时,大家帮我想想怎么样才可得到 小时
我是这样写的:
var start = new Date(str_start.substring(0,4),str_start.substring(5,7)-1,str_start.substring(8,10),
str_start.substring(11,13),str_start.substring(14,16)); var end=new Date(str_end.substring(0,4),str_end.substring(5,7)-1,
str_end.substring(8,10),str_start.substring(11,13),str_start.substring(14,16)); var totalHours=(end-start)/(86400000);
可这除出来的结果好像是天,不是小时,大家帮我想想怎么样才可得到 小时
解决方案 »
- 同时用setTimeout()刷新几个页面该怎么做?
- 加入document.onkeydown后一按ESC,GIF动态图片就变静止的了
- 这种情况如何解决?jQuery怎么选择得到<c:forEach标签 高手指教~~~~~~`
- 求助,求助png背景图片问题?
- jquery+asp文本框输入数据自动提示功能!
- 如何用JS打开新窗口,并关闭原来窗口
- JS控制h:selectManyCheckbox复选框
- 条形码控件在firefox的显示问题
- 求支持netscape的日历控件
- display和visibility的区别?
- 怎么让弹出框不透明,问题已被困扰多天,期望高手解决
- googlemap 中的问题
//| 日期计算
//+---------------------------------------------------
Date.prototype.DateAdd = function(strInterval, Number) {
var dtTmp = this;
switch (strInterval) {
case 's' :return new Date(Date.parse(dtTmp) + (1000 * Number));
case 'n' :return new Date(Date.parse(dtTmp) + (60000 * Number));
case 'h' :return new Date(Date.parse(dtTmp) + (3600000 * Number));
case 'd' :return new Date(Date.parse(dtTmp) + (86400000 * Number));
case 'w' :return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));
case 'q' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
case 'm' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
case 'y' :return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
}
}
var str_start = "2009-04-03 11:14:13";
var str_end = "2009-04-03 16:44:13";
var start = new Date(str_start.substring(0,4),str_start.substring(5,7)-1,str_start.substring(8,10),
str_start.substring(11,13),str_start.substring(14,16)); var end=new Date(str_end.substring(0,4),str_end.substring(5,7)-1,
str_end.substring(8,10),str_end.substring(11,13),str_end.substring(14,16));
var h = (end.getTime() - start.getTime()) / (1000 * 60 * 60);
alert(h);
//| 比较日期差 dtEnd 格式为日期型或者 有效日期格式字符串
//+---------------------------------------------------
Date.prototype.DateDiff = function(strInterval, dtEnd) {
var dtStart = this;
if (typeof dtEnd == 'string' )//如果是字符串转换为日期型
{
dtEnd = StringToDate(dtEnd);
}
switch (strInterval) {
case 's' :return parseInt((dtEnd - dtStart) / 1000);
case 'n' :return parseInt((dtEnd - dtStart) / 60000);
case 'h' :return parseInt((dtEnd - dtStart) / 3600000);
case 'd' :return parseInt((dtEnd - dtStart) / 86400000);
case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7));
case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1);
case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear();
}
}
这个是时间差函数
<script>
var str_start = "2009-04-03 11:14:13";
var str_end = "2009-04-03 16:44:13";
var start = new Date(str_start.substring(0,4),str_start.substring(5,7)-1,str_start.substring(8,10),
str_start.substring(11,13),str_start.substring(14,16)); var end=new Date(str_end.substring(0,4),str_end.substring(5,7)-1,
str_end.substring(8,10),str_end.substring(11,13),str_end.substring(14,16));
var h = (end.getTime() - start.getTime()) / (1000 * 60 * 60);
alert(h);
</script>
直接减不准确,处理不了跨月和大小月,可以考虑分成两部分,1 取前八位日期,转换成date类型,比较日期间隔2 取后六位时间,比较24小时的时间间隔将1和2的结果综合起来就可以了。如果需要结果是小时格式的再转换一下,注意单位。
var str_start =new Date(Date.parse("2009-04-03 11:14:13".replace(/-/g,"/"))) ;
var str_end = new Date(Date.parse("2009-04-03 16:44:13".replace(/-/g,"/")));
var h = (str_end - str_start) / (1000 * 60 * 60);
document.write(h)非要自己高那么复杂