今天 31 st 可能
$currentM = date('m');
// 05
$nextM = date('m', strtotime('+1 month'));
// 07
我做错了什么?我不明白为什么下个月会给07
。
答案 0 :(得分:11)
从今天(31/5)起的下一个月是31/6,它不存在,所以它转发到1/7。
您可能希望增加实际月份:$nextM = date('m') % 12 + 1
答案 1 :(得分:3)
尝试:
$d = new DateTime();
$d->modify('first day of next month');
echo $d->format('m');
答案 2 :(得分:1)
您可以使用以下任何代码段
$month = date('n') % 12 + 1;
(OR)
$month = date('m', strtotime('+1 months'));
(OR)
$month = date('m') + 1
答案 3 :(得分:1)
问题在于今天是第31位。添加一个月可能会重叠2个月。
我通常只是通过使用第1天添加一个月并使用第28天减去一个月来解决这个问题:
echo(date('m'));
echo "\n";
echo(date('m', strtotime(date('Y-m-28') . ' -1 month'))); // day 28 - 1 month
echo "\n";
echo(date('m', strtotime(date('Y-m-1') . ' +1 month'))); // day 1 + 1 month
输出:
05
04
06