$ymr='2005-06-09';
$mr=substr($ymr,4);  
$ymr= strtotime($ymr)+366*24*60*60;
$y=strftime('%Y',$ymr);
$ymr=$y.$mr;

解决方案 »

  1. cvm
  2. $ymr='2005-06-09';$y=substr($ymr,0,4);if(checkdate('2','29',$y))
        $ymr= strtotime($ymr)+366*24*60*60;
    else
        $ymr= strtotime($ymr)+365*24*60*60;$ymr=strftime('%Y-%m-%d',$ymr);
      

  3. 上面的例子在月分上有点问题
    改用这个
    $ymr='2005-06-09';
    $m=substr($ymr,5,2);
    $y=substr($ymr,0,4);if($m>2)
        $y=$y+1;
    if(checkdate('2','29',$y))    $ymr= strtotime($ymr)+366*24*60*60;else
        $ymr= strtotime($ymr)+365*24*60*60;$ymr=strftime('%Y-%m-%d',$ymr);这个例子算出的结果和下面的是一样的:$ymr='2005-06-09';
    $mr=substr($ymr,4);  
    $ymr= strtotime($ymr)+366*24*60*60;
    $y=strftime('%Y',$ymr);
    $ymr=$y.$mr;
      

  4. 奇怪!
    加一年就是加一年,不需要考虑润年问题php
    echo date("Y-m-d H:i:s",strtotime("2005-06-08 11:18:00 +1 year")); //out 2006-06-08 11:18:00mysql
    select adddate('2005-06-08 11:18:00', interval 1 year)
    out:
    2006-06-08 11:18:00
      

  5. 欢迎加入PHP  WAP QQ群8352641   大家一起交流,一起进步.共同发展