下面是一个计算时间差的式子<script type="text/javascript">
<!--
var int2time=function (m){
m-=(D=parseInt(m/86400000))*86400000;
m-=(H=parseInt(m/3600000))*3600000;
S=parseInt((m-=(M=parseInt(m/60000))*60000)/1000);
return D+'天'+H+'小时'+M+'分'+S+'秒'
}
window.onload = function(){
document.getElementById("odiv").innerHTML = int2time(new Date('2010/1/1')-new Date());
}

//-->
</script>
<div id="odiv"></div>
// 86400000 = 24*60*60*1000 这些数字的含义我都知道 但这个式子我分析不出来 希望大家给分开讲解下...

解决方案 »

  1.   


    // 我想var D = new Date('2010/1/1')-new Date()这个不就是返回了相差时间的毫秒数么?
    // 那么转化成天不就直接 D/86400000 小时D/60*60 *1000 秒 D/1000
      

  2.   

    天直接 m/86400000 没错
    但是小时m/60*60 *1000 不行,
    因为要计算的是几天几小时,必须先去掉天数,
    m/60*60 *1000得到的是整个小时数,如xxx.x小时,整数部分xxx/24就是天数,
    显然之前已经算过天数了,因该去掉,而是要计算不到一天的小时数。