Php日期加减函数

php在做日期加减的时候非常麻烦,没有现成的函数,我做了一个。解决了2009-05-31加上一个月会变2009-06-31,这样就错了,6月没有31号,就变成了7月一号了!我的函数在月分加减上没有问题了。

2009-07-01 16:00:36

function my_date_add($opt,$time,$num){

  $year = date('Y',strtotime($time));
  $month = date('m',strtotime($time));
  $day = date('d',strtotime($time));
  $last_day = date('t',strtotime($time));

  if($opt=='y'){
    $year = $year + $num;
  } else if($opt=='d'){
    $day = $day + $num;
  } else if($opt=='m'){
    $month = $month + $num;
    if($day == $last_day){//如果是最后一天的话
      $day = date('t',strtotime("{$year}-{$month}-01"));
    }
  } else {
    return $time;
  }

  return date("Y-m-d", mktime(0, 0, 0, $month, $day, $year));
}

徜徉于这片废土的我们.....应当去哪里追寻更好的自己?