我知道开始时间,结束时间,例如
2013-03-03 20:00:00
2013-03-04 06:00:00
我已经能知道两个时间差是10个小时
我现在想计算的是,开始时间到当天结束是几个小时,例如
2013-03-03 20:00:00 应该是到结束是4个小时
那么后面的时间就应该是10-4=6个小时,问题是我不知道如何去计算开始时间到本天结束的时间差,应该用js怎么写?
求解。
function doJs(){
 
var kssj=dv_1.GetItemValue(dv_1.GetCurrentRow(),"kssj");
//kssj=kssj.format('yyyy-MM-dd hh:mm:ss');
var jssj=dv_1.GetItemValue(dv_1.GetCurrentRow(),"jssj");
//jssj=jssj.format('yyyy-MM-dd hh:mm:ss');
var date3=jssj.getTime()-kssj.getTime();
var leave1=date3%(24*3600*1000)    //计算天数后剩余的毫秒数
        var hours=Math.floor(leave1/(3600*1000))
dv_1.SetItemValue(dv_1.GetCurrentRow(),"sl",hours);
alert(hours);
}
我程序计算的方法,只能得到两个时间的时间差。求完善。js 时间差

解决方案 »

  1.   

    调用sql利用数据库的函数来计算时间差 不就简单了吗?
      

  2.   

    转成  new Date().getTime()  剪掉2个时间差 不就可以了。。还转啥哦
      

  3.   

        var s1 = '2013/03/03 20:00:00', s2 = '2013/03/04 06:00:00';
        var d1 = new Date(s1), d2 = new Date(s2), d3 = new Date(d1.getFullYear() + '/' + (d1.getMonth() + 1) + '/' + (d1.getDate() + 1));
        var totalHour = (d2.getTime() - d1.getTime()) / (1000 * 60 * 60), preHour = (d3.getTime() - d1.getTime()) / (1000 * 60 * 60), nextHour = totalHour - preHour;
        alert('总时间:'+totalHour+'\n' + d1.toLocaleString() + '~' + d3.toLocaleString() + ':' + preHour + '\n剩下的:' + nextHour);