setMonth 疑问

<script   type="">  
  var   odate=new   Date()  
  odate.setFullYear(2006)  
  odate.setMonth(4)  
  odate.setDate(5)  
  alert(odate.getFullYear()+"-"+(odate.getMonth()+1)+"-"+odate.getDate())  
  </script>  
   
  当odate     设置为偶数时显示正确,  
  当为奇数时,显示为大干比正确日期大一月的  
  为什么会是这样  
  在IE和firefox中都试过了  
  都是这样 问题点数:20、回复次数:4Top

1 楼meizz(梅花雪)回复于 2006-05-31 17:40:56 得分 0

month   的下标是从   0   开始的,12月的下标是   11Top

2 楼jun573(军)回复于 2006-05-31 17:52:20 得分 0

我都是在0到11之间试的Top

3 楼meizz(梅花雪)回复于 2006-05-31 19:18:55 得分 20

确实存在你所说的问题,我估计这跟   new   Date()   空日期有关。比如这样:  
  <script   type="">  
  var   odate=new   Date("2000/0/1");   //指定一个日期,你再   setMonth   就没有问题了。  
  odate.setFullYear(2006);  
  odate.setMonth(3);  
  odate.setDate(5);  
  alert(odate.getFullYear()+"-"+(odate.getMonth()+1)+"-"+odate.getDate());  
  </script>

原文地址:https://www.cnblogs.com/panzhilei/p/1106267.html