日期:2014-05-18  浏览次数:20495 次

急 用js把时间加一年
我想用js把2007-8-1这种格式的字符串加上一年,变成2008-8-1,不知道怎么写,各位帮看看了,等着用了
  我搜索过,有种
    function   addDate(type,NumDay,dtDate)
{  
      var   date   =   new   date(dtDate)
  type   =   parseInt(type)   //类型    
  lIntval   =   parseInt(NumDay)//间隔  
    switch(type)
    {  
      case   6   ://年  
    date.setYear(date.getYear()   +   lIntval)  
    break;  
  case   7   ://季度  
    date.setMonth(date.getMonth()   +   (lIntval   *   3)   )  
    break;  
  case   5   ://月  
    date.setMonth(date.getMonth()   +   lIntval)  
    break;  
  case   4   ://天  
    date.setDate(date.getDate()   +   lIntval)  
    break  
  case   3   ://时  
    date.setHours(date.getHours()   +   lIntval)  
    break  
  case   2   ://分  
    date.setMinutes(date.getMinutes()   +   lIntval)  
    break  
  case   1   ://秒  
    date.setSeconds(date.getSeconds()   +   lIntval)  
    break;  
  default:  
         
    }    
  return   date.getYear()   + '- '   +     (date.getMonth()+1)   +   '- '   +date.getDate()
}  
不过我在调用的时候,var   date   =   new   date(dtDate)出错,date变成了NaN,应该是格式不对
大家看看有什么方法没了

------解决方案--------------------
<script language = "javascript ">
var d = addDate(6,1, '8-1-2007 ');
alert(d.toString(10));


function addDate(type,NumDay,dtDate)
{
var date = new Date(dtDate);
type = parseInt(type) //类型
lIntval = parseInt(NumDay)//间隔
switch(type)
{
case 6 ://年
date.setYear(date.getYear() + lIntval)
break;
case 7 ://季度
date.setMonth(date.getMonth() + (lIntval * 3) )
break;
case 5 ://月
date.setMonth(date.getMonth() + lIntval)
break;
case 4 ://天
date.setDate(date.getDate() + lIntval)
break
case 3 ://时
date.setHours(date.getHours() + lIntval)
break
case 2 ://分
date.setMinutes(date.getMinutes() + lIntval)
break
case 1 ://秒
date.setSeconds(date.getSeconds() + lIntval)
break;
default:

}
return date.getYear() + '- ' + (date.getMonth()+1) + '- ' +date.getDate()
}
</script>

将var date = new date(dtDate)改为var date = new Date(dtDate);