if(newIntendingFinishTime.getHours()>17)
        {
           //周日的情况
           if(newIntendingFinishTime.getDay()==0)
           {
                //得到时间差值     得到超出的时间
                newHours = newIntendingFinishTime.getHours() - 9;
                //因为是18:00以后并且是周日所以天数+2
                finallyDD = newIntendingFinishTime.getDate()+2;
                finallyMM = newIntendingFinishTime.getMonth() + 1;
                //显示
                IntendingFinishTime = newIntendingFinishTime.getFullYear()+"-"+finallyMM+"-"+finallyDD+" "+newHours+":"+newIntendingFinishTime.getMinutes()+":"+newIntendingFinishTime.getSeconds(); 
            }
            //周六的情况
            else if(newIntendingFinishTime.getDay()==6)
            {
                
                //得到时间差值
                newHours = newIntendingFinishTime.getHours() - 9;
                //因为是18:00以后并且是周六所以天数+3
                finallyDD = newIntendingFinishTime.getDate() + 3;
                    
                finallyMM = newIntendingFinishTime.getMonth() + 1;
                //显示
                IntendingFinishTime = newIntendingFinishTime.getFullYear()+"-"+finallyMM+"-"+finallyDD+" "+newHours+":"+newIntendingFinishTime.getMinutes()+":"+newIntendingFinishTime.getSeconds(); 
            }
            //周一到周五的情况
            else
            {
                //得到时间差值
                newHours = newIntendingFinishTime.getHours() - 9;
                alert(newHours);
                //因为是18:00以后
                finallyDD = newIntendingFinishTime.getDate() + 1;
                alert(finallyDD);    
                finallyMM = newIntendingFinishTime.getMonth() + 1;
                //显示
                IntendingFinishTime = newIntendingFinishTime.getFullYear()+"-"+finallyMM+"-"+finallyDD+" "+newHours+":"+newIntendingFinishTime.getMinutes()+":"+newIntendingFinishTime.getSeconds(); 
            }
        }例如:今天是月末(包括闰年,平年一类的)我输入 小时 的时候可以让 年月日 正确的随着变化,我现在输入日的时候年月日可以正确的变化,比如 2月28日,1月31日 我输入+1天的时候会变成3月1日,2月1日,但是我现在输入小时的时候 要是1月31日会变成1月32日,请问怎么修改...

解决方案 »

  1.   

    直接用Date类啊,
    如果自己来算,那要什么闰年什么的搞死你
      

  2.   

    干嘛放着本身就有的东西不用.你自己写的东西,指不定又有什么莫名其妙的bug
      

  3.   

    同意三楼说的,楼主那样的判断容易出Bug的
      

  4.   

    这个真是,我都晕死了,我现在想改成你说的那样,给我个思路吧
    我把else if(newIntendingFinishTime.getHours()>17)
            {
                debugger;
               //周日的情况
               if(newIntendingFinishTime.getDay()==0)
               {
                    //得到时间差值     得到超出的时间
                    newHours = newIntendingFinishTime.getHours() - 9;
                    //因为是18:00以后并且是周日所以天数+2
                    finallyDD = newIntendingFinishTime.getDate()+2;
                    finallyMM = newIntendingFinishTime.getMonth() + 1;
                    //显示
                    IntendingFinishTimes = new Date(newIntendingFinishTime.getFullYear(),finallyMM,finallyDD,newHours,newIntendingFinishTime.getMinutes(),newIntendingFinishTime.getSeconds()); 
                    IntendingFinishTime = IntendingFinishTimes.getFullYear()+"-"+IntendingFinishTimes.getMonth()+"-"+IntendingFinishTimes.getDate()+" "+IntendingFinishTimes.getHours()+":"+IntendingFinishTimes.getMinutes()+":"+IntendingFinishTimes.getSeconds();
                }
                //周六的情况
                else if(newIntendingFinishTime.getDay()==6)
                {
                    
                    //得到时间差值
                    newHours = newIntendingFinishTime.getHours() - 9;
                    //因为是18:00以后并且是周六所以天数+3
                    finallyDD = newIntendingFinishTime.getDate() + 3;
                        
                    finallyMM = newIntendingFinishTime.getMonth() + 1;
                    //显示
                    IntendingFinishTimes = new Date(newIntendingFinishTime.getFullYear(),finallyMM,finallyDD,newHours,newIntendingFinishTime.getMinutes(),newIntendingFinishTime.getSeconds()); 
                    IntendingFinishTime = IntendingFinishTimes.getFullYear()+"-"+IntendingFinishTimes.getMonth()+"-"+IntendingFinishTimes.getDate()+" "+IntendingFinishTimes.getHours()+":"+IntendingFinishTimes.getMinutes()+":"+IntendingFinishTimes.getSeconds();
                }
                //周一到周五的情况
                else
                {
                    //得到时间差值
                    newHours = newIntendingFinishTime.getHours() - 9;
                    //因为是18:00以后
                    finallyDD = newIntendingFinishTime.getDate() + 1; 
                    finallyMM = newIntendingFinishTime.getMonth() + 1;
                    //显示
                    IntendingFinishTimes = new Date(newIntendingFinishTime.getFullYear(),finallyMM,finallyDD,newHours,newIntendingFinishTime.getMinutes(),newIntendingFinishTime.getSeconds()); 
                    IntendingFinishTime = IntendingFinishTimes.getFullYear()+"-"+IntendingFinishTimes.getMonth()+"-"+IntendingFinishTimes.getDate()+" "+IntendingFinishTimes.getHours()+":"+IntendingFinishTimes.getMinutes()+":"+IntendingFinishTimes.getSeconds();
                }
            }给他格式化成 日期类型,再给他显示 这样他显示的还有问题,应该怎么弄,貌似我有点跳不出来了
      

  5.   

    给个URL,自己看
    http://www.jb51.net/article/16517.htm
      

  6.   


    Microsoft JScript 运行时错误: 对象不支持此属性或方法var yy = myDate.getFullYear();//获取完整的年份(4位,1970-????) 
    var mm = myDate.getMonth()+1; //获取当前月份(0-11,0代表1月) 
    var dd = myDate.getDate(); //获取当前日(1-31) 
    var hh = myDate.getHours(); //获取当前小时数(0-23) 
    var mi = myDate.getMinutes(); //获取当前分钟数(0-59) 
    var ss = myDate.getSeconds(); //获取当前秒数(0-59) 
    var newIntendingFinishTime = new Date(yy,mm-1,ddd,hhh,mi,ss);
    aa = newIntendingFinishTime.dateAdd("d",1);
    alert(aa);我这样写的 为什么报对象不知道这个方法,get的方法我都可以拿到
      

  7.   

    aa = newIntendingFinishTime.dateAdd("d",1);=>
    aa = newIntendingFinishTime.setDate(+newIntendingFinishTime.getDate()+1);
      

  8.   

    dateAdd   这个方法我怎么没见过
      

  9.   

    我也纠结这个,那个一堆小船的教我了一个这个方法 让我去学习,我弄出一个
    aa = newIntendingFinishTime.dateAdd("d",1);
    玩意,他报错。
      

  10.   

    aa = newIntendingFinishTime.setDate(+newIntendingFinishTime.getDate()+1);
    alert((new Date(aa)).toDateString());
    你这样setDate当然是毫秒数。其实是对象的valueOf
    其实setDate修改了本身对象
    你直接newIntendingFinishTime.toDateString()就可以了