下个月在PHP中出错
今天是5月31日下个月在PHP中出错,php,date,Php,Date,今天是5月31日 $currentM = date('m'); // 05 $nextM = date('m', strtotime('+1 month')); // 07 我做错了什么?我不明白为什么下个月会给出07从今天开始的下个月(31/5)是不存在的31/6,所以它会转发到1/7 您可能希望增加实际月份:$nextM=date('m')%12+1尝试: $d = new DateTime(); $d->modify('first day of next month'); ech
$currentM = date('m');
// 05
$nextM = date('m', strtotime('+1 month'));
// 07
我做错了什么?我不明白为什么下个月会给出07
从今天开始的下个月(31/5)是不存在的31/6,所以它会转发到1/7
您可能希望增加实际月份:$nextM=date('m')%12+1
尝试:
$d = new DateTime();
$d->modify('first day of next month');
echo $d->format('m');
您可以使用以下任何代码段
$month = date('n') % 12 + 1;
(或)
(或)
问题是今天是31号。添加一个月可能会重叠两个月 我通常简单地用第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
首先定义“+1个月”的工作方式。你会发现这是一个很难的定义$nextM=$currentM+1对我来说有点可笑,就是这样!!!!!31/6不存在,所以1/7,我现在明白了!该死的@在英国,今天的l2aelba是31/05,尽管我知道世界上有些地方是30/05,有些地方已经是1/06@nl-x谢谢,更新了第二个特别不起作用,第三个最终会给你“13”。
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