1 整天的不管了
2 不足一天的,则逐个进行判断就行了  if(hour>=9 && hour<=18){
    ... 不用写了吧...
  }

解决方案 »

  1.   

    jsp判断问题,大虾快来!在线等,急!  3楼老大去这里帮人家解决structs的问题克....:)
      

  2.   

    function Compute(workTimeStart,workTimeEnd,refDate)
    {
      var dayWorkMinute=(workTimeEnd-workTimeStart)*60;
      refDate=new Date(refDate.replace(/-/g,"/"));
      if(refDate.toString()=="NaN"){alert("错误的时间类型!");return -1;}
      var nowDate=new Date();
      if(refDate>nowDate){alert("请输入一个小于今天的时间!");return -1;}
      var totalMinute=0;  
      //计算天数差
      var days=parseInt((nowDate-refDate)/(1000*60*60*24));//求相隔的天数
      totalMinute+=days*dayWorkMinute;
      //计算日期时间的差
      var refHour=refDate.getHours(),refMinute=refDate.getMinutes(),nowHour=nowDate.getHours(),nowMinute=nowDate.getMinutes();
      if(refHour>=workTimeStart&&refHour<workTimeEnd)//计算传递的日期时间
       totalMinute+=(workTimeEnd-refHour)*60+refMinute;
      if(nowHour>workTimeStart&&nowHour<workTimeEnd)//计算现在的日期时间
       totalMinute+=(nowHour-9)*60+nowMinute;
      return totalMinute;
    }//测试
    var workMinute,refDate="2008-6-18 18:00:00";
    workMinute=Compute(9,18,refDate);
    if(workMinute!=-1)alert("从"+refDate+"到现在已经工作了"+workMinute+"分钟!");
    refDate="2008-6-25 18:00:00";
    workMinute=Compute(9,18,refDate);
    if(workMinute!=-1)alert("从"+refDate+"到现在已经工作了"+workMinute+"分钟!");
    refDate="2008-6-17 18:00:00";
    workMinute=Compute(9,18,refDate);
    if(workMinute!=-1)alert("从"+refDate+"到现在已经工作了"+workMinute+"分钟!");
    refDate="2008-6-15 18:00:00";
    workMinute=Compute(9,18,refDate);
    if(workMinute!=-1)alert("从"+refDate+"到现在已经工作了"+workMinute+"分钟!");
      

  3.   

    (日期天数差-1)*9*60+(结束的点钟>18?18:结束的点钟<9?9:结束的点钟-开始的点钟>18?18:开始的点钟<9?9:开始的点钟)*60+(结束的分钟-开始的分钟)
      

  4.   

    呵呵你们的方法都不是很好,showbo大哥的运行后也有问题,然后我想出一个方法,改了改,先将时间格式化,如果在开始和结束时间以外就设置成开始时间和结束时间,然后工作时间=(格式化的现在时间-格式化后的开始时间)-(24-(工作时间))谢谢大家的帮助了,谢谢!!!
    function Compute(workTimeStart,workTimeEnd,refDate)
    {
    var dayWorkMinute=(workTimeEnd-workTimeStart)*60;
    refDate=new Date(refDate.replace(/-/g,"/"));
    if(refDate.toString()=="NaN"){alert("错误的时间类型!");return -1;}
    var nowDate=new Date();
    if(refDate>nowDate){alert("请输入一个小于今天的时间!");return -1;}
    var totalMinute=0;

    //计算相差天数
    var refDate1=refDate.getYear()+"-"+(refDate.getMonth()+1)+"-"+refDate.getDate()+" 00:00:00";
    refDate1=new Date(refDate1.replace(/-/g,"/"));
    var nowDate1=nowDate.getYear()+"-"+(nowDate.getMonth()+1)+"-"+nowDate.getDate()+" 00:00:00";
    nowDate1=new Date(nowDate1.replace(/-/g,"/"));
    var days=parseInt((nowDate1-refDate1)/(1000*60*60*24));//求相隔的天数
    //alert(days);

    //totalMinute+=days*dayWorkMinute;
    //计算日期时间的差
    if(refDate.getHours()<workTimeStart)
    {
    refDate=refDate.getYear()+"-"+(refDate.getMonth()+1)+"-"+refDate.getDate()+" "+workTimeStart+":00:00";
    refDate=new Date(refDate.replace(/-/g,"/"));
    alert(refDate.getMonth());
    alert(refDate);
    }
    if(refDate.getHours()>workTimeEnd)
    {
    refDate=refDate.getYear()+"-"+(refDate.getMonth()+1)+"-"+refDate.getDate()+" "+workTimeEnd+":00:00";
    refDate=new Date(refDate.replace(/-/g,"/"));
    }
    if(nowDate.getHours()<workTimeStart)
    {
    nowDate=nowDate.getYear()+"-"+(nowDate.getMonth()+1)+"-"+nowDate.getDate()+" "+workTimeStart+":00:00";
    nowDate=new Date(nowDate.replace(/-/g,"/"));
    }
    if(nowDate.getHours()>workTimeEnd)
    {
    nowDate=nowDate.getYear()+"-"+(nowDate.getMonth()+1)+"-"+nowDate.getDate()+" "+workTimeEnd+":00:00";
    nowDate=new Date(nowDate.replace(/-/g,"/"));
    }
    alert(nowDate);
    alert(refDate);
    var totalMinute=parseInt((nowDate-refDate)/(1000*60))-days*(24-(workTimeEnd-workTimeStart))*60;
    //工作时间=(格式化的现在时间-格式化后的开始时间)-(24-(工作时间))
    alert(totalMinute);
       return totalMinute;
    }//测试
    var workMinute,refDate="2008-6-19 19:00:00";
    workMinute=Compute(9,18,refDate);
    if(workMinute!=-1)alert("从"+refDate+"到现在已经工作了"+workMinute+"分钟!");
      

  5.   

    //是不是 计算时间差么? 我给个简单的 
    var ndata = "06/19/2008 20:12:02";
    var pdate = "06/19/2008 20:12:20";
    var sec = Date.parse(pdate) - Date.parse(ndata);
    //sec 是毫秒 就看你想转换什么了