Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
下个月在PHP中出错_Php_Date - Fatal编程技术网

下个月在PHP中出错

下个月在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

今天是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');
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