JS用了setMonth或setFullYear设置日期对后,getDay获取到的值要就总是1,要么就总是错误的,是什么原因?我的JS代码如下:  var nowtime = new Date();
   nowtime.setDate(1);
   alert(nowtime.getDay());
//nowtime.setMonth(2);
//nowtime.setFullYear(2008);
如果把最后的两行注释掉,那么getDay能正确的获得值,如果后面两行加上的话,那么获得的值就是错的,是什么原因,请高手指教一下。

解决方案 »

  1.   

    dateObject.setFullYear(year,month,day)setfullYear是三个参数,如果不给后面的参数,应该会有默认值吧,这样是不是就和你设置的不一样了?
      

  2.   


    var nowtime = new Date();
    nowtime.setDate(1); // 设为本月 1 日 (2010-01)
    alert(nowtime.getDay());  // 5 .   2010-01-01 确实是星期五呀
    没有错误,怎么会有错
      

  3.   

    nowtime.getMonth();      //current month(0-11,0-->1月)
    月份是从0开始算的,估计你没在意这个
      

  4.   

    同意2楼,只算前3行的话,结果是5,是正确的。
    但是var nowtime = new Date();
    nowtime.setDate(1);
                  
    nowtime.setMonth(2);
    nowtime.setFullYear(2008);
    alert(nowtime.getDay());如果这样的话,结果是6,你觉得不对了是吗?
    那么你使用如下代码var nowtime = new Date();
    nowtime.setDate(1);             
    nowtime.setMonth(2);
    nowtime.setFullYear(2008);
    alert(nowtime.getDay()+'---'+(nowtime.getMonth()+1)+'----'+nowtime.getYear()+'---'+nowtime.getDate());当前是1月,你设置为2月,但是实际结果是nowtime.getMonth()+1,也就是2008年3月1日,是星期六。没有错的。
    那么总结一下,你觉得错误的地方其实就是3楼已经解释的问题
    nowtime.getMonth();      //月份是从0开始算的
    那么你使用nowtime.getMonth()的话就必须是nowtime.getMonth()+1.这下明白了吗?
      

  5.   

    补充一下,getDay()是获取星期几,getDate()才是获取天,也就是几号