$t = '2011-01-31 17:21:22';
print_r(array(
date('Y年m月',strtotime($t)),
date('Y年m月',strtotime('+ 1 month',strtotime($t))),
date('Y年m月',strtotime('+ 2 month',strtotime($t))),
));
exit;
为什么都是3月。。
回复讨论(解决方案)
$t 时间是1月31号 2月没有 所以数组第二个元素也是三月了。
二月没有 31 日
所以 一月31日加一个月就到三月了
$t = '2011-01-28 17:21:22'; //改成 28 日print_r(array( date('Y年m月',strtotime($t)), date('Y年m月',strtotime('+ 1 month',strtotime($t))), date('Y年m月',strtotime('+ 2 month',strtotime($t))),));
Array( [0] => 2011年01月 [1] => 2011年02月 [2] => 2011年03月)
strtotime 是有自动校正日期的功能的
print_r(array( date('Y年m月d日',strtotime('2011-02-31')), date('Y年m月d日',strtotime('2011-04-31')), date('Y年m月d日',strtotime('2011-06-31')),));
Array( [0] => 2011年03月03日 [1] => 2011年05月01日 [2] => 2011年07月01日)