对字符串使用indexOf处理后分别算时间嘛

解决方案 »

  1.   


    <script type="text/javascript"> <!-- var time1="19:00";
    var time2="23:50";var hours=parseInt(time1.substring(0,time1.indexOf(":")))-parseInt(time2.substring(0,time2.indexOf(":")));
    var minutes=parseInt(time1.substring(time1.indexOf(":")+1))-parseInt(time2.substring(time2.indexOf(":")+1));alert("相差"+hours+"小时 "+minutes+"分钟");
    //--> 
    </script> 
      

  2.   

    <script type="text/jscript" language="jscript">
    //<![CDATA[
    function parseTime(time1,time2,defaultTime){
      defaultTime=defaultTime||"19:00";              //default start time;
      time1=(time1||defaultTime).split(":");
      time2=(time2||"23:59").split(":");
      var temp=(time2[0]*60*60*1000+time2[1]*60*1000)-(time1[0]*60*60*1000+time1[1]*60*1000);
      var minute=temp/1000/60%60;
      return {hour:Math.floor(temp/1000/60/60+(minute<0?1:0)),minute:minute};
    }var t=new parseTime("19:00","23:50");         //The introduction of two parameters of time;
    alert("Overstep "+t.hour+" hours "+t.minute+" minutes!");
    //]]
    </script>
    我是新手,多多关照!
      

  3.   

    <script type="text/javascript"> <!-- var time1="19:55";  //这里改了一下;
    var time2="23:50";var hours=parseInt(time1.substring(0,time1.indexOf(":")))-parseInt(time2.substring(0,time2.indexOf(":")));
    var minutes=parseInt(time1.substring(time1.indexOf(":")+1))-parseInt(time2.substring(time2.indexOf(":")+1));alert("相差"+hours+"小时 "+minutes+"分钟");
    //--> 
    </script>
    二楼的脚本虽然看上起去可用,但只是简单的小时减小时、分钟减分钟,如果设为上面的时间,运算结果为:
     “相差-4小时 5分钟"
    先不说容易引起混淆的(正负)分钟的多少,实际上两个时间点有没有相差4小时(240分钟)呢?
    时间的运算要当作时间来做,才会有好的、可以重用的脚本,从根本上解决问题。