PHP strtotime校验+10天到下个月的第一天

PHP strotime check + 10days to the first day of the next month

我需要检查月底是否在 10 天内。如果不是,日期应该是下个月的第一天。如果月底在接下来的十天内,那么我需要显示下个月的第一天。

这是我的代码:

$tenDays = date('Y-m-d', strtotime('+10 days'));
$firstDayNextMonth = date('Y-m-d', strtotime('$tenDays, first day of next month'));

echo"$tenDays";
echo "<br>";
echo "$firstDayNextMonth";

输出为:

2015-08-01
1970-01-01

根据今天 2015-07-22 的日期,第二行的预期结果应该是 2015-09-01,而不是 1970-01-01

停止使用 strtotime() 计算日期。那是 而不是 它的用途。使用 DateTime().

$firstDayNextMonth = (new DateTime('+10 days'))->modify('first day of next month')->format('Y-m-d');

Demo

使用 00 作为日期:

$foo = new DateTime('2015-03-00');
$foo->format('r');

如您所见,三月的 0th 是二月的最后一天。因此,一个简单的 $foo->format('d') 即可为您提供该月的最后一天。